"),o.close();var d=n.mapValues(c.SandboxedFunctions,(function(e){return i[e]}));u.dispatch(r.SANDBOXED_FUNCTIONS_ADDED,{sandboxedFunctions:d}),t.parentNode.removeChild(t)}catch(e){l.warn("Unable to create a sandbox: ",e)}}}),(function(e,t,i){var n=i(2),r=i(23),a=i(94),o=i(16),s=o.get("stores/plugins"),c=i(7),u=i(25),l=i(9),d=!1,f=[i(107),i(108),i(128)],p=["clientMetadata","cookieDomain","disable","load","optOut","rum"];t.push=function(e,t){var i,a,o,s;if(!n.isArray(e)&&n.isObject(e))s=n.isUndefined(e.version)?1:e.version,i=e.type,o=[e];else if(n.isArray(e))s=0,i=e[0],o=e.slice(1);else{if(!n.isString(e))return r.warn("API / Ignoring non-array/object/string argument:",e),!1;s=0,i=e,o=[]}if(f[s]&&(a=f[s][i]),t&&p.indexOf(i)===-1)return r.debug("API / Ignoring non high priority function:",i,o),!1;if(!a)return r.warn('API / No function found for "'+i+'" (v'+s+") with arguments:",o),!1;r.log('API / Executing: "'+i,'" with arguments:',o);try{a.apply(null,o),l.dispatch(c.RECORD_API_USAGE,{methodName:s?"v"+s+"."+i:i})}catch(e){r.error(e)}return!0},t.get=function(e){if(d&&"state"!==e)return void r.warn('Module "'+e+'" not found.');r.log('API / Getting module: "'+e+'"');var t=a[e];return t?n.isArray(t)&&(t=o.evaluate(t)):t=s.getPlugin(u.PluginTypes.apiModules,e),t?(l.dispatch(c.RECORD_API_USAGE,{methodName:"get."+e}),t):void r.warn('Module "'+e+'" not found.')}}),(function(e,t,i){function n(e,t,i,n){var r=e.getLayerState(n),a=t.get(n),s=i.get();if(!r||!a)return s?{layer:{name:s.layerName,id:s.layerId,policy:s.layerPolicy,integrationStringVersion:s.integrationStringVersion},experiment:{name:s.experimentName,id:s.experimentId},variation:{name:s.variationName,id:s.variationId},isLayerHoldback:!1}:null;if(l.isSingleExperimentPolicy(a.policy)&&r.decision.isLayerHoldback)return null;var c=r.decision.experimentId,u=r.decision.variationId;if(!c||!u)return null;var d,f;return(d=o.find(a.experiments,{id:c}))?(f=o.find(d.variations,{id:u}),f?{layer:{name:a.name,id:a.id,policy:a.policy,integrationStringVersion:a.integrationStringVersion},experiment:{name:d.name,id:d.id},variation:{name:f.name,id:f.id},isLayerHoldback:r.decision.isLayerHoldback}:null):null}function r(e,t,i,n,r,s){var c=[],u=e.getLayerStates();s.onlySingleExperiments&&(u=o.filter(u,(function(e){var i=t.get(e.layerId);return i&&l.isSingleExperimentPolicy(i.policy)})));var f=o.map(u,(function(e){var t=!!e.decision.variationId,i=e.decisionActivationId&&e.decisionActivationId===n.getActivationId(),r=d.getExperimentAndVariation(),a=r?r.variationId:null,s=t&&e.decision.variationId===a;return o.extend(e,{isActive:t&&i||s,visitorRedirected:s})})),p=r?o.filter(f,r):f;return o.each(p,(function(e){var n=a(e,t,i,s.includeOfferConsistency);n&&c.push(n)})),c}function a(e,t,i,n){var r,a,s=e.layerId,c=t.get(s)||{},u=o.map(c.experiments,(function(e){return o.pick(e,["id","name"])}));if(n||!c.decisionMetadata||!c.decisionMetadata.offerConsistency){var l={id:s,campaignName:c.name||null,experiment:null,allExperiments:u,variation:null,reason:e.decision.reason,isActive:!!e.isActive,visitorRedirected:e.visitorRedirected,isInCampaignHoldback:e.decision.isLayerHoldback};e.decision&&e.decision.experimentId&&(r=o.find(c.experiments,{id:e.decision.experimentId})),r&&(l.experiment=o.pick(r,["id","name","campaignName"])),r&&e.decision.variationId&&(a=o.find(r.variations,{id:e.decision.variationId})),a&&(l.variation=o.pick(a,["id","name"]));var d=o.map(e.decisionTicket.audienceIds,(function(e){return o.pick(i.get(e),["id","name"])}));return l.audiences=d,c.decisionMetadata&&c.decisionMetadata.offerConsistency&&(l.pageId=e.pageId),l}}var o=i(2),s=i(95),c=i(96),u=i(98),l=i(44),d=i(99);t.data=["stores/audience_data","stores/client_metadata","stores/event_data","stores/layer_data","stores/view_data","stores/group_data","stores/interest_group","stores/tag_group","stores/global",function(e,t,i,n,r,a,s,l,d){
var f={},p={},g={},h={audiences:e.getAudiencesMap(),events:i.getEventsMap(),campaigns:f,pages:r.getPagesMap(),experiments:p,variations:g,projectId:d.getProjectId(),snippetId:d.getSnippetId(),accountId:d.getAccountId(),dcpServiceId:d.getDCPServiceId(),revision:d.getRevision(),clientName:t.getClientName(),clientVersion:t.getClientVersion()},_=u.dereferenceChangeId;return o.each(n.getAll(),(function(e){c.defineProperty(f,e.id,(function(){var t=o.extend({},e);return c.defineProperty(t,"changes",(function(){return o.map(e.changes,_)}),"campaign"),c.defineProperty(t,"experiments",(function(){return o.map(e.experiments,(function(e){return p[e.id]}))}),"campaign"),t}),"campaignMap","byId"),o.each(e.experiments,(function(e){c.defineProperty(p,e.id,(function(){var t=o.extend({},e);return c.defineProperty(t,"changes",(function(){return o.map(e.changes,_)}),"experiment"),c.defineProperty(t,"variations",(function(){return o.map(e.variations,(function(e){return g[e.id]}))}),"experiment"),t}),"experimentMap","byId"),o.each(e.variations,(function(e){c.defineProperty(g,e.id,(function(){var t=o.extend({},e);return c.defineProperty(t,"actions",(function(){return o.map(e.actions,(function(e){return o.extend({},e,{changes:o.map(e.changes,_)})}))}),"variation"),t}),"variationMap","byId")}))}))})),h.groups=a.getGroupsMap(),h}],t.session=["stores/session",function(e){return e.getState()}],t.visitor=["stores/visitor",function(e){return o.cloneDeep(e.getVisitorProfile())}],t.visitor_id=["stores/visitor_id",function(e){return{randomId:e.getRandomId()}}],t.state=["stores/audience_data","stores/layer_data","stores/layer","stores/view_data","stores/view","stores/global","stores/observed_redirect",function(e,t,i,a,c,u,f){return{getCampaignStates:function(n){var a={},s=r(i,t,e,u,n,{includeOfferConsistency:!1});return o.each(s,(function(e){a[e.id]=e})),a},getExperimentStates:function(n){var a=r(i,t,e,u,n,{includeOfferConsistency:!1,onlySingleExperiments:!0}),s=["audiences","variation","reason","visitorRedirected","isActive"],c=o.reduce(a,(function(e,t){var i=t.allExperiments[0];return e[i.id]=o.extend({},o.pick(t,s),{id:i.id,experimentName:i.name,isInExperimentHoldback:t.isInCampaignHoldback}),e}),{});return c},getCampaignStateLists:function(n){var a={},s=r(i,t,e,u,n,{includeOfferConsistency:!0});return o.each(s,(function(e){var t=e.id;a[t]||(a[t]=[]),a[t].push(e)})),a},getPageStates:function(e){var t=c.getAll(),i=o.reduce(t,(function(e,t){var i=a.get(t.id);return e[t.id]=o.extend({},o.pick(i,["id","name","apiName","category","staticConditions","tags"]),o.pick(t,["isActive","metadata"])),e[t.id].isActive=!!e[t.id].isActive,e}),{});return e?o.pickBy(i,e):i},isGlobalHoldback:function(){return u.isGlobalHoldback()},getActivationId:function(){return u.getActivationId()},getVariationMap:function(){var e=i.getLayerStates(),n={};return o.each(e,(function(e){var i=t.get(e.layerId);if(e.decision&&e.decision.experimentId&&(n[e.decision.experimentId]={id:e.decision.variationId,name:null,index:null},i)){var r=o.find(i.experiments,{id:e.decision.experimentId});if(r&&e.decision.variationId)var a=o.find(r.variations,{id:e.decision.variationId}),s=o.findIndex(r.variations,{id:e.decision.variationId});a&&(n[e.decision.experimentId]={id:e.decision.variationId,name:a.name,index:s})}})),n},getActiveExperimentIds:function(){var e={};return o.each(this.getCampaignStateLists({isActive:!0}),(function(t){o.each(t,(function(t){e[t.experiment.id]=!0}))})),o.keys(e)},getRedirectInfo:function(){var e=d.getExperimentAndVariation();return e&&(e.referrer=d.getReferrer()),e},getDecisionString:function(e){if(!e)throw new Error("Must pass a config to getDecisionString");e=o.extend({maxLength:255,shouldCleanString:!1},e);var r=n(i,t,f,e.campaignId);return r?s.generateAnalyticsString(r.layer,r.experiment,r.variation,r.isLayerHoldback,e.maxLength,e.shouldCleanString):null},getDecisionObject:function(e){if(!e)throw new Error("Must pass a config to getDecisionObject");e=o.extend({maxLength:255,shouldCleanString:!1},e);var r=n(i,t,f,e.campaignId);if(!r)return null;var a=s.formatNamesAndIdsForAnalytics(r.layer,r.experiment,r.variation,e.shouldCleanString),c=o.mapValues(a.names,(function(t,i){return s.combineAndTruncateIdAndName(t,a.idStrings[i],e.maxLength)})),u={experiment:c.experiment,variation:c.variation};return l.isSingleExperimentPolicy(r.layer.policy)||o.extend(u,{campaign:c.layer,holdback:r.isLayerHoldback}),u}}}],t.utils=i(100).create(),t.jquery=["env/jquery",function(e){return e}],t.event_emitter=i(106)}),(function(e,t,i){function n(e){return e.replace(/[^a-zA-Z0-9\.\~\!\*\(\)\']+/g,"_")}function r(e){return!c.isEmpty(e)&&c.includes(["and","or","not"],e[0])}function a(e,t){var i="";return c.isEmpty(t)?i=d:(i=c.reduce(t,(function(t,i){var r=e.get(i);return r?t+n(r.name?r.name:r.id)+",":t}),""),i=i.slice(0,-1)),i}function o(e,i,n,r,a,o){if(!_.isSingleExperimentPolicy(e.policy)||!r){var s=!_.isSingleExperimentPolicy(e.policy)&&r,u=t.formatNamesAndIdsForAnalytics(e,i,n,o),d=[u.names.experiment,u.names.variation],p=[u.idStrings.experiment,u.idStrings.variation];_.isSingleExperimentPolicy(e.policy)||(d.unshift(u.names.layer),p.unshift(u.idStrings.layer));var g=c.reduce(p,(function(e,t){return e+t.length}),0),h=d.length-1+(s?1:0),v=h*l.length,E=g+v;if(s&&(E+=f.length),E>a)throw new Error("The analytics string size is too low to send the entity IDs.");for(var m=a-E,I=d.length,y=[],S=d.length-1;S>=0;S--){var T=d[S],A=Math.min(T.length,Math.floor(m/I));m-=A,I--,y.unshift(T.substring(0,A))}var R=c.map(y,(function(e,t){return e+p[t]}));return s&&R.push(f),R.join(l)}}function s(e,i,n,r,a,o){var s=r?f:p,u=3*l.length,d=t.formatNamesAndIdsForAnalytics(e,i,n,o),g=d.names,h=d.idStrings,v=c.reduce(h,(function(e,t){return e+t.length}),0);if(v+u+s.length>a)throw new Error("The analytics string size is too low to send the campaign, experiment, and variation IDs.");var E=a-v-u-s.length,m={};m.variation=Math.min(g.variation.length,Math.floor(E/3)),E-=m.variation,m.experiment=Math.min(g.experiment.length,Math.floor(E/2)),E-=m.experiment,m.layer=E;var I={};c.each(g,(function(e,t){I[t]=e.substring(0,m[t])}));var y=[];return _.isSingleExperimentPolicy(e.policy)||y.push(I.layer+h.layer),y=y.concat([I.experiment+h.experiment,I.variation+h.variation,s]),y.join(l)}var c=i(2),u=i(16),l=":",d="everyone_else",f="holdback",p="treatment",g="",h=i(23),_=i(44);t.formatNamesAndIdsForAnalytics=function(e,t,i,o){var s={layer:e.name||g,experiment:t.name||g,variation:i.name||g};if(o&&(s=c.mapValues(s,n)),s.experiment===g&&(!e.integrationStringVersion||1===e.integrationStringVersion))if(r(t.audienceIds))s.experiment="Exp";else{var l=u.get("stores/audience_data");s.experiment=a(l,t.audienceIds)}var d={layer:"("+n(e.id)+")",experiment:"("+n(t.id)+")",variation:"("+n(i.id)+")"};return{names:s,idStrings:d}},t.combineAndTruncateIdAndName=function(e,t,i){var n=i-t.length;if(n<0&&(h.warn("maxLength must be at least long enough to fit the entity ID, which is length"+t.length+". Defaulting to only use entity ID as name."),e=g),e===g)return t;if(e.length>n){var r=Math.min(e.length,n);return e=e.substring(0,r),e+t}return e+" "+t},t.generateAnalyticsString=function(e,t,i,n,r,a){return e.integrationStringVersion&&2===e.integrationStringVersion?o(e,t,i,n,r,a):s(e,t,i,n,r,a)}}),(function(e,t,i){var n=i(97),r=i(7),a=i(9),o=i(23);t.defineProperty=function(e,t,i,s,c){n(e,t,(function(){var e=["prop",s,c||t].join(".");return o.debug('Evaluating getter: "'+e+'"'),a.dispatch(r.RECORD_API_USAGE,{methodName:e}),i()}),!0)}}),(function(e,t){"use strict";function i(e,t,i,n){Object.defineProperty(e,t,{get:function(){var e=i.call(this);return Object.defineProperty(this,t,{value:e,enumerable:!!n,writable:!0}),e},set:function(e){return Object.defineProperty(this,t,{value:e,enumerable:!!n,writable:!0}),e},enumerable:!!n,configurable:!0})}e.exports=i}),(function(e,t,i){function n(e){var i=r.cloneDeep(e);return i.changes&&(i.changes=r.map(i.changes,t.dereferenceChangeId)),i.experiments&&r.each(i.experiments,(function(e){e.changes&&(e.changes=r.map(e.changes,t.dereferenceChangeId)),e.variations&&r.each(e.variations,(function(e){e.actions&&r.each(e.actions,(function(e){e.changes&&(e.changes=r.map(e.changes,t.dereferenceChangeId))}))}))})),i}var r=i(2),a=i(16),o=i(22),s=i(96),c=a.get("stores/change_data");t.translateDecisionToCampaignDecision=function(e){return u(r.cloneDeep(e),{layerId:"campaignId",isLayerHoldback:"isCampaignHoldback"})},t.translateLayerEventToCampaignEvent=function(e){var t={};return s.defineProperty(t,"campaign",(function(){var t=n(e.data.layer);return t}),"campaignEvent"),t.decisionTicket=e.data.decisionTicket,t.decision=this.translateDecisionToCampaignDecision(e.data.decision),t.audiences=e.data.audiences,{type:"lifecycle",name:"campaignDecided",data:t}},t.translateViewActivatedToPageActivated=function(e){return{type:"lifecycle",name:"pageActivated",data:{page:e.data.view}}},t.dereferenceChangeId=function(e){var t=c.getChange(e);return t?o.safeReference(t):e};var u=function(e,t){var i=r.omit(e,r.keys(t));return r.each(t,(function(t,n){i[t]=e[n]})),i}}),(function(e,t,i){var n=i(2),r=i(16),a=r.get("stores/observed_redirect");t.getReferrer=function(){var e=a.get();return e?e.referrer:null},t.getExperimentAndVariation=function(){var e=a.get();return e&&n.isString(e.variationId)?n.pick(e,["experimentId","variationId"]):null}}),(function(e,t,i){var n=i(12).Promise,r=i(101).observeSelector,a=i(102).poll,o=i(104).waitForElement,s=i(105).waitUntil;t.create=function(){return{observeSelector:r,poll:a,Promise:n,waitForElement:o,waitUntil:s}}}),(function(e,t,i){function n(){if(f.shouldObserveChangesIndefinitely()){var e={attributes:!0,childList:!0,subtree:!0,characterData:!0},t=p.getDocumentElement(),i=new MutationObserver(function(){this.disconnect(),l.each(l.keys(E),a),this.observe(t,e)});return function(n){var r=E[n];i.observe(t,e),r.cancelObservation=function(){delete E[n],l.isEmpty(E)&&i.disconnect()}}}return function(e){var t=h.poll(l.partial(a,e));E[e].cancelObservation=function(){t(),delete E[e]}}}function r(e){var t=E[e];t&&t.cancelObservation&&t.cancelObservation()}function a(e){if(E[e]){if(o(E[e]))return 0===E[e].matchedCount&&l.isFunction(E[e].options.onTimeout)&&E[e].options.onTimeout(),void r(e);var t=document.querySelectorAll(E[e].selector);t.length&&(l.each(t,(function(t){t.ii&&t.ii[e]||E[e].callbackQueue.push(t)})),s(e))}}function o(e){var t=e.options.timeout;if(null!==t)if("function"==typeof t)try{return t()}catch(e){}else if(Date.now()-e.startTime>t)return!0;return!1}function s(e){for(;E[e]&&E[e].callbackQueue.length;){var t=E[e].callbackQueue.shift();if(c(t,e),E[e].matchedCount=E[e].matchedCount+1,E[e].callback(t),E[e]&&E[e].options.once)return void r(e)}}function c(e,t){e.ii||(e.ii={}),e.ii[t]=!0}function u(e){try{document.querySelector(e)}catch(e){return!1}return!0}var l=i(2),d=(i(7),i(16)),f=d.get("stores/directive"),p=i(80),g=(i(25),i(9),i(5).generate),h=i(102),_=i(40),v=(d.get("stores/rum"),{once:!1,onTimeout:null,timeout:null}),E={},m=function(e){(m=n())(e)};t.observeSelector=function(e,t,i){if(!u(e))throw new Error("observeSelector expects a valid css selector as its first argument");if(!l.isFunction(t))throw new Error("observeSelector expects a function as its second argument");if(i&&(!l.isObject(i)||l.isFunction(i)))throw new Error("observeSelector expects an object as its third argument");var n=g();return i=l.assign({},v,i||{}),E[n]={callback:t,callbackQueue:[],matchedCount:0,options:i,selector:e,startTime:Date.now()},m(n),_.setTimeout(l.bind(a,null,n),0),l.partial(r,n)}}),(function(e,t,i){function n(e){l[e]&&a.each(l[e].callbacks,(function(e){e.call(null)}))}function r(e,t){l[t]&&l[t].callbacks[e]&&(delete l[t].callbacks[e],a.some(l[t].callbacks)||(clearInterval(l[t].id),delete l[t]))}var a=i(2),o=(i(7),i(16)),s=(i(25),i(9),i(5).generate),c=i(40),u=i(103).DEFAULT_INTERVAL,l=(o.get("stores/rum"),{});t.poll=function(e,t){a.isNumber(t)||(t=u),l[t]||(l[t]={callbacks:{},id:c.setInterval(a.partial(n,t),t)});var i=s();return l[t].callbacks[i]=e,a.partial(r,i,t)},t.cancelAll=function(){a.each(l,(function(e,t){clearInterval(e.id),delete l[t]}))}}),(function(e,t){e.exports={DEFAULT_INTERVAL:20}}),(function(e,t,i){var n=i(12).Promise,r=i(101).observeSelector;t.waitForElement=function(e){return new n(function(t,i){r(e,t,{once:!0})})}}),(function(e,t,i){var n=i(12).Promise,r=i(102).poll;t.waitUntil=function(e){return new n(function(t,i){if(e())return void t();var n=r((function(){e()&&(n(),t())}))})}}),(function(e,t,i){var n=i(87);t.on=function(e){return e.publicOnly=!0,n.on(e)},t.off=n.off,t.emit=function(e){n.emit(e)}}),(function(e,t,i){function n(e){var t,i={};if(e)if(r(e))t=Number(e);else{if("object"!=typeof e)throw new Error("tracker","Revenue argument",e,"not a number.");if(i=a.extend({},e),"revenue"in i){if(!r(i["revenue"]))throw new Error("tracker","Revenue value",i["revenue"],"not a number.");t=Number(i["revenue"]),delete i["revenue"]}}return a.isUndefined(t)||(i.revenue=t),i}function r(e){return a.isNumber(e)||a.isString(e)&&Number(e)==e}var a=i(2),o=i(108);t.activateGeoDelayedExperiments=function(e,t){t||(t=e.lists?"odds":"cdn3"),o.dataFromSource({data:e,source:t})},t.activateSiteCatalyst=function(e){e&&e.sVariable&&o.integrationSettings({id:"adobe_analytics",settings:{sVariableReference:e.sVariable}})},t.bucketUser=t.bucketVisitor=function(e,t){if(e&&t){var i={experimentId:String(e)};t>256?i.variationId=String(t):i.variationIndex=String(t),o.bucketVisitor(i)}},t.disable=function(e){o.disable({scope:e})},t.log=function(e){a.isUndefined(e)&&(e=!0),o.log({level:e?"INFO":"OFF"})},t.optOut=function(e){a.isUndefined(e)&&(e=!0),o.optOut({isOptOut:e})},t.setCookieDomain=function(e){o.cookieDomain({cookieDomain:e})},t.setCookieExpiration=function(e){o.cookieExpiration({cookieExpirationDays:e})},t.setDimensionValue=function(e,t){var i={};i[e]=t,o.user({attributes:i})},t.setUserId=function(e){o.user({userId:e})},t.storeThirdPartyData=function(e,t){o.dataFromSource({source:e,data:t})},t.trackEvent=function(e,t){o.event({eventName:e,tags:n(t)})}}),(function(e,t,i){function n(e){var t;return e.eventId&&(t=I.create(e.eventId,e.eventName,"custom")),D.updateAllViewTags(),function(){var i=p.trackCustomEvent(e.eventName,e.tags,t);i?R.log("API / Tracking custom event:",e.eventName,e.tags):R.log("API / Not tracking custom event:",e.eventName)}}function r(e){var t;return e.eventData&&(t=I.create(e.eventData.id,e.eventData.apiName,"click",e.eventData)),function(){var e=p.trackClickEvent(t);e?R.log("API / Tracking click event:",e):R.log("API / Not tracking click event:",e)}}function a(e){var t=e.eventData,i=A.createLayerState(t.layerId,t.experimentId,t.variationId,t.isLayerHoldback),n=A.createSingle(t.layerId,t.experimentId,t.variationId);return function(){A.recordLayerDecision(i.layerId,i.decisionTicket,i.decision),R.log("API / Tracking decision event:",i),p.trackDecisionEvent(i.decision,i.decisionTicket,n)}}function o(e){var t=D.create(e.eventData.id,e.eventData.apiName),i=D.createState(t.id);return function(){var e=p.trackViewActivation(t,i);e?R.log("API / Tracking pageview event:",e):R.log("API / Not tracking pageview event:",e)}}var s=i(2),c=i(7),u=i(93),l=i(94),d=i(109),f=i(25),p=i(110),g=i(117),h=i(6),_=i(76).create,v=i(24),E=i(118),m=i(120),I=i(121),y=i(87),S=i(9),T=i(26),A=i(113),R=i(23),b=i(122),w=i(114),D=i(123),O=i(74),N=i(16),C=N.get("stores/dimension_data"),L=N.get("stores/view"),P=N.get("stores/view_data"),V=N.get("stores/visitor_id"),k=N.get("stores/layer_data"),x=N.get("stores/directive"),F=!1,M=!1,U=F||M,G=86400,B=90,z=t.ApiListenerError=_("ApiListenerError");t.event=function(e){var t;switch(e.eventType){case"click":t=r(e);break;case"decision":t=a(e);break;case"pageview":t=o(e);break;case"custom":default:t=n(e)}V.getBucketingId()?t():S.dispatch(c.ADD_CLEANUP_FN,{lifecycle:f.Lifecycle.postActivate,cleanupFn:t})},t.clientMetadata=function(e){U&&(S.dispatch(c.SET_CLIENT_NAME,e.clientName),S.dispatch(c.SET_CLIENT_VERSION,e.clientVersion)),F&&e.forceVariationIds&&S.dispatch(c.LOAD_DIRECTIVE,{forceVariationIds:e.forceVariationIds})},t.priorRedirectString=function(e){U&&w.load(e.value)},t.microsnippetError=function(e){if(U){var t=e.errorData.metadata&&e.errorData.metadata.err||{};t.name=e.errorData.code;var i={engine:e.engine,msVersion:e.errorData.msVersion,requestId:e.errorData.requestId,projectId:e.errorData.projectId,snippetKey:e.errorData.snippetKey,args:e.errorData.args};m.handleError(t,i)}},t.rum=function(e){S.dispatch(c.SET_RUM_DATA,e.eventData)},t.initialViewStates=function(e){var t=s.map(e.states,(function(e,t){return{id:t,isActive:e}}));D.registerViews(t)},t.page=function(e){var t=P.getByApiName(e.pageName);if(!t)throw new Error('Unknown page "'+e.pageName+'"');var i=!e.hasOwnProperty("isActive")||e.isActive,n=function(){i?D.activateViaAPI(t,e.tags):(D.deactivate(t),R.log("API / Deactivated Page",D.description(t)))};V.getBucketingId()?n():S.dispatch(c.ADD_CLEANUP_FN,{lifecycle:f.Lifecycle.postViewsActivated,cleanupFn:n})},t.tags=function(e){D.setGlobalTags(e.tags)},t.user=function(e){U&&e.visitorId&&(V.getBucketingId()?(R.log("API / Setting visitor Id:",e.visitorId),O.setId({randomId:e.visitorId})):(R.log("API / Setting visitor Id for activation:",e.visitorId),S.dispatch(c.SET_VISITOR_ID_VIA_API,e.visitorId))),F&&s.each(["IP","location","queryParams","url"],(function(t){e[t]&&(R.log("API / Setting",t,":",e[t]),j(t,e[t],!1))})),R.log("API / Setting visitor custom attributes:",e.attributes),s.each(e.attributes,(function(e,t){var i,n,r=t,a=C.getById(t)||C.getByApiName(t);a&&(r=a.id,i=a.apiName,n=a.segmentId||a.id);var o={id:n,value:e};i&&(o.name=i),j(r,o,!0)}))};var j=function(e,t,i){var n=[{key:i?["custom",e]:[e],value:t,metadata:{lastModified:v.now()}}],r=function(){S.dispatch(c.SET_VISITOR_ATTRIBUTES,{attributes:n})};V.getBucketingId()?r():S.dispatch(c.ADD_CLEANUP_FN,{lifecycle:f.Lifecycle.postVisitorProfileLoad,cleanupFn:r})};t.optOut=function(e){var t=!e.hasOwnProperty("isOptOut")||e.isOptOut;E.setOptOut(t)},t.cookieExpiration=function(e){var t=e.cookieExpirationDays;t');var s=n.querySelector("#"+o);if(!s)throw new Error("Document.write failed to append script");s.onload=i,s.onerror=function(n){r.warn("Failed to load script ("+e+") synchronously:",n),t.addScriptAsync(e,i)}}catch(n){r.debug("Document.write failed for "+e+": "+n.message);var c=function(e){var t=new Function(e.responseText);t(),i&&i()};return a.request({url:e,async:!1,contentType:"text/plain",success:c})["catch"]((function(n){r.error("Failed to load "+e+" via synchronous XHR: "+n.message),t.addScriptAsync(e,i)}))}}}),(function(e,t,i){function n(){var e=null;w.isNumber(e)&&0===ve.getCount()?($.log("Activating after delay of",e,"ms because no Experiments are running"),q.dispatch(L.SET_RUM_DATA,{data:{activateDfd:!0}}),ue.setTimeout(V.emitActivateEvent,e)):V.emitActivateEvent()}function r(e){Oe.handleError(e.data.error,e.data.metadata)}function a(){w.isArray(window.optimizely)&&(window.optimizely=w.filter(window.optimizely,(function(e){var t=!0;return!De.push(e,t)})))}function o(){var e=i(85),n=!!ce.getCurrentId(),r=!!n&&ce.hasSomeData();n?r?$.log("xd / Existing visitor; has data on this origin"):$.log("xd / Existing visitor; new to this origin"):$.log("xd / New visitor");var a=he.getAccountId(),o="https://a15853140465.cdn.optimizely.com".replace("__SUBDOMAIN__","a"+a+"."),c="/client_storage/a"+a+".html";e.subscribe((function(e,t){ce.checkKeyForVisitorId(e)&&Q.setItem(e,t)}));var u=e.fetchAll().then((function(t){if(Re.getVisitorIdLocator())ce.removeVisitorId();else{var i=we.getCanonicalOrigins();if(i){var n=e.getXDomainUserId(t,i);n&&($.log("Syncing cross-origin visitor randomId:",n),ce.maybePersistVisitorId({randomId:n}))}}return ce.deleteOldForeignData(),t})).then(t.persistItemsWithId).then((function(e){if(ce.loadForeignData(),n&&!r){var t=!w.isEmpty(e);$.debug("xd / Loaded foreign data? ",t),s(t)}$.log("Loaded visitor data from foreign origins"),V.emitOriginsSyncedEvent()}),(function(e){throw n&&!r&&($.debug("xd / Failed to load foreign data:",e),s(!1,e)),e}));return ie.all([e.load(o,c)["catch"]((function(e){throw $.debug("xd / Failed to load iframe:",e),n&&!r&&s(!1,e),e})),u["catch"]((function(e){$.debug("xd / Ignored error syncing foreign data (expected if waitForOriginSync used):",e.message),$.debug("xd / Enqueuing sync to happen after visitorId set."),q.dispatch(L.ADD_CLEANUP_FN,{lifecycle:j.Lifecycle.postVisitorProfileLoad,cleanupFn:V.emitOriginsSyncedEvent})}))])}function s(e,t){q.dispatch(L.SET_RUM_DATA,{data:{extras:{xdAttempt:e,xdError:t?t.toString():void 0}}})}function c(e){var t=Se.getVisitorProfile();return ce.populateEagerVisitorData(e,t)}function u(e,t,i){e=e||[];var n=Ie.getAllPlugins(j.PluginTypes.visitorProfileProviders),r=he.getGlobalHoldbackThreshold(),a=Se.getVisitorProfile();ce.populateLazyVisitorData(n,a);var o=Re.getBucketingId();if(!o)throw new Error("bucketingId not set");var s,c=Se.getVisitorProfile();if(t&&!Pe){var u=be.getVariationIdMap();s=u[t.id]}var l={bucketingId:o,visitorProfile:c,audiences:e,globalHoldback:r,preferredVariationMap:s,layer:t};return t&&i&&U.isPageIdRelevant(t)?w.map(i,(function(e){return U.createTicket(w.extend({},l,{pageId:e}))})):[U.createTicket(l)]}function l(e){return{bucketingId:Re.getBucketingId(),preferredLayerId:be.getPreferredLayerMap()[e.id]}}function d(e){var i=ve.getAllByPageIds(e),n=ge.getForceVariationIds(),r=ge.getForceAudienceIds(),a=!w.isEmpty(n);a&&$.log("Force variations are in use. Disabling mutual exclusivity.");var o=a?{individual:i}:w.reduce(i,(function(e,t){return t.groupId?e.groups[t.groupId]||(e.groups[t.groupId]=_e.get(t.groupId)):e.individual.push(t),e}),{groups:{},individual:[]});$.log("Deciding Campaigns/Experiments for Page(s)",e);var s=w.map(o.groups,W.description).join(", ");$.log("Groups:",s);var c=w.map(o.individual,X.description).join(", ");$.log("Campaigns/Experiments not in Groups (by Campaign id):",c);var u=w.map(o.groups,w.partial(f,n,r,e))||[],l=w.map(o.individual,(function(i){var a=w.filter(i.pageIds,w.partial(w.includes,e));return t.decideAndExecuteLayerASAP(n,r,a,i)})),d=u.concat(l);return ie.all(d).then((function(t){var i=w.filter(t,(function(e){return!!e}));return $.log("All Campaigns/Experiments for Page(s) (by Campaign id)",e,"resolved:",w.map(i,X.description).join(", ")),i}))}function f(e,i,n,r){try{var a=l(r),o=U.decideGroup(r,a);if(o.reason)return $.debug("Not activating Group",W.description(r),"; reason:",o.reason),ye.getSampleRum()&&q.dispatch(L.RECORD_LAYER_FEATURE_USAGE,{feature:"mutex",entityId:r.id}),ie.resolve();var s=ve.get(o.layerId);if(!s)return $.debug("Visitor was bucketed into a Campaign ("+o.layerId+") which is not in this snippet"),ie.resolve();var c=w.filter(s.pageIds,w.partial(w.includes,n));return w.isEmpty(c)?($.debug("Not activating Group",W.description(r),"; reason: visitor was bucketed into a Campaign/Experiment not related to the currently-activating Page(s)"),ie.resolve()):(ye.getSampleRum()&&q.dispatch(L.RECORD_LAYER_FEATURE_USAGE,{feature:"mutex",entityId:r.id}),t.decideAndExecuteLayerASAP(e,i,c,s))}catch(e){return $.error("Error getting decision for Group",W.description(r),"; ",e),ie.reject(e)}}function p(e,t,i,n){return new ie(function(r,a){try{E(n,e,t,i,(function(a){w.each(a,(function(r){var a=r.pageId?[r.pageId]:i;$.debug("Deciding layer: ",n,"with decisionTicket: ",r,"and actionViewIds: ",a),g(n,e,t,a,r)})),r(n)}))}catch(e){$.error("Error getting decision for Campaign: "+X.description(n),e),a(e)}})}function g(e,i,n,r,a){var o=X.description(e);$.log("Activating Campaign",o,"on Page(s)",r),n.length&&($.log("Applying force audienceIds:",n,"to Campaign",o),a=w.cloneDeep(a),a.audienceIds=n);var s=t.decideLayer(e,a,i),c=!(!i.length&&!n.length),u=t.getActionsForDecision(e,s,c),l=b(u.actions,r);if(u.maybeExecute&&h(l,e,s,r),w.forEach(r,(function(){P.trackDecisionEvent(s,a)})),V.emitLayerDecided({layer:e,decisionTicket:a,decision:s}),s.error)throw s.error;if(ye.getSampleRum()){q.dispatch(L.RECORD_LAYER_POLICY_USAGE,{policy:e.policy,layerId:e.id});var d=v(u.actions);q.dispatch(L.RECORD_CHANGE_TYPE_USAGE,{changeTypes:w.keys(d),layerId:e.id}),w.isEmpty(e.integrationSettings)||q.dispatch(L.RECORD_INTEGRATION_USAGE,{integrations:X.getIntegrationTypes(e),layerId:e.id})}return U.isInCohort(s)?void(u.maybeExecute&&_(l,e,s,r)):void $.log("Not activating Campaign: "+X.description(e)+"; not in the cohort because:",s.reason)}function h(e,t,i,n){var r=X.description(t);$.log("Preparing actions",e,"for Campaign",r,"on Page(s)",n),w.forEach(e,C.prepareAction)}function _(e,t,i,n){var r=X.description(t);return $.log("Executing actions",e,"for Campaign",r,"on Page(s)",n),ie.all(w.map(e,(function(e){return C.executePreparedAction(e).then(w.partial(V.emitActionAppliedEvent,e))}))).then((function(){$.log("All page actions for",i,"applied:",e),V.emitActionsForDecisionAppliedEvent(i,e)}))["catch"]((function(e){$.warn("Error evaluating page actions for decision",i,"because:",e)}))}function v(e){var t={};return w.each(e,(function(e){w.each(e.changeSet,(function(e){t[e.type]||(t[e.type]=!0)}))})),t}function E(e,t,i,n,r){if(t.length||i.length)return void r(u([],void 0,n));var a=X.relatedAudienceIds(e),o=w.reduce(a,(function(e,t){var i=de.get(t);return i&&e.push(i),e}),[]),s=Ie.getAllPlugins(j.PluginTypes.audienceMatchers);if(ye.getSampleRum()){var c={};if(w.each(o,(function(e){w.extend(c,m(e.conditions,s))})),!w.isEmpty(c)){var l=w.keys(c);q.dispatch(L.RECORD_AUDIENCE_USAGE,{audienceTypes:l,layerId:e.id})}}S(o,s,X.getActivationTimeout(e),(function(){var t=u(o,e,n);w.map(t,(function(t){I(t,o,e)})),r(t)}))}function m(e,t){var i={};return w.each(e,(function(e){w.isArray(e)?w.extend(i,m(e,t)):w.isObject(e)&&t[e.type]&&(i[e.type]=!0)})),i}function I(e,t,i){var n=w.map(e.audienceIds,w.bind(de.get,de)),r=w.filter(t,(function(t){return!w.includes(e.audienceIds,t.id)}));$.log("When deciding Campaign",X.description(i),"visitor is in audiences:",y(n),"and not in audiences:",y(r))}function y(e){var t=[];return w.each(e,(function(e){t.push(e.name,e)})),t}function S(e,t,i,n){var r=w.reduce(e,(function(e,i){return w.extend(e,k.requiredAudienceFieldsForConditions(i.conditions,t))}),{}),a=w.reduce(r,(function(e,t){if(w.isUndefined(ce.getAttribute(t))){var i=ce.getPendingAttributeValue(t);w.isUndefined(i)||e.push(i)}return e}),[]);if(0===a.length)return n();var o=[].concat(e),s=ne.firstToResolve(w.map(a,(function(e){return ie.resolve(e).then((function(){var e=Se.getVisitorProfile();if(o=w.filter(o,(function(i){return w.isUndefined(k.isInAudience(e,i,t))})),!w.isEmpty(o))throw new Error("At least one audience is still pending")}))})));ie.race([s,new ie(function(e,t){ue.setTimeout(t,i)})]).then((function(){$.log("Activating Campaign after pending Audiences resolved",e),n()}),(function(){$.log("Activating Campaign after timeout on Audiences",e),n()}))}function T(e,t,i){var n,r=X.description(e);return n=i.length?U.getDummyLayerDecision(e,i):U.decideLayer(e,t),$.log("Recording decision for Campaign",r,t,"->",n),X.recordLayerDecision(e.id,t,n),Pe||(n.variationId&&n.experimentId&&ce.updateVariationIdMap(e.id,n.experimentId,n.variationId),e.groupId&&ce.updatePreferredLayerMap(e.groupId,e.id)),n}function A(e){var t=pe.getCleanupFns(e);if(t.length>0){for(;t.length>0;)t.shift()();q.dispatch(L.CLEAR_CLEANUP_FN,{lifecycle:e})}}function R(e,t,i){var n=X.description(e),r="NOT applying changes for Campaign",a={actions:[],maybeExecute:!1};return a.actions=[].concat(fe.getLayerActions(t.layerId)||[],fe.getExperimentActions(t.experimentId)||[],fe.getExperimentVariationActions(t.experimentId,t.variationId)||[]),!i&&he.isGlobalHoldback()?($.log(r,n,"(visitor is in global holdback)"),a):t.isLayerHoldback?($.log(r,n,"(visitor is in layer holdback)"),a):t.experimentId&&t.variationId?(a.maybeExecute=!0,
$.log("Got Actions for Campaign:",n,a.actions),a):($.log(r,n,"(visitor is not eligible for any Experiments)"),a)}function b(e,t){return w.filter(e,(function(e){return w.isUndefined(e.pageId)||w.includes(t,e.pageId)}))}var w=i(2),D=i(76).create,O=t.ActivationCodeError=D("ActivationCodeError"),N=t.ProjectJSError=D("ProjectJSError"),C=i(134),L=i(7),P=i(110),V=i(117),k=i(138),x=i(86),F=i(109),M=i(24),U=i(139),G=i(16),B=i(118),z=i(80),j=i(25),H=i(87),K=i(111),Y=i(144),q=i(9),W=i(143),X=i(113),Q=i(81).LocalStorage,$=i(23),J=i(145),Z=i(83),ee=i(122),te=i(88),ie=i(12).Promise,ne=i(146),re=i(114),ae=i(116),oe=i(136),se=i(123),ce=i(74),ue=i(40),G=i(16),le=G.get("stores/session"),de=G.get("stores/audience_data"),fe=G.get("stores/action_data"),pe=G.get("stores/cleanup"),ge=G.get("stores/directive"),he=G.get("stores/global"),_e=G.get("stores/group_data"),ve=G.get("stores/layer_data"),Ee=G.get("stores/layer"),me=G.get("stores/pending_events"),Ie=G.get("stores/plugins"),ye=G.get("stores/rum"),Se=G.get("stores/visitor"),Te=G.get("stores/view_data"),Ae=G.get("stores/view"),Re=G.get("stores/visitor_id"),be=G.get("stores/visitor_bucketing"),we=G.get("stores/xdomain"),De=i(93),Oe=i(120),Ne=i(1),Ce=1e3,Le=!1,Pe=!1,Ve=!1,ke=Pe||Ve,xe=1e3,Fe=t;t.initialize=function(e){var i=e.clientData;if(F.normalizeClientData(e.clientData),H.on({filter:{type:"error"},handler:r}),q.dispatch(L.DATA_LOADED,{data:i}),$.log("Initialized with DATA:",i),a(),B.setOptOut(ge.shouldOptOut()),ge.isDisabled()||ge.shouldOptOut())return void $.log("Controller / Is disabled");if(Ne.queueBeacons(),z.isReady()?q.dispatch(L.SET_DOMCONTENTLOADED):z.addReadyHandler((function(){q.dispatch(L.SET_DOMCONTENTLOADED)})),!ke){Z.time("projectJS");var o=he.getProjectJS();if(w.isFunction(o))try{Y.apply(o)}catch(e){$.error("Error while executing projectJS: ",e),x.emitError(new N(e))}Z.timeEnd("projectJS")}w.each(e.plugins||[],(function(e){try{e(ee)}catch(e){x.emitInternalError(e)}})),w.each(he.getPlugins()||[],(function(e){try{Y.apply(e,[ee])}catch(e){x.emitError(e)}})),re.load();var s=H.on({filter:{type:"lifecycle",name:"activated"},handler:function(){Se.observe(ce.persistVisitorProfile),Ee.observe(ce.persistLayerStates),le.observe(ce.persistSessionState),me.observe(J.persistPendingEvents),Pe||be.observe(ce.persistVisitorBucketingStore),H.off(s)}});H.on({filter:{type:"lifecycle",name:"viewsActivated"},handler:t.onViewsActivated}),H.on({filter:{type:"lifecycle",name:"pageDeactivated"},handler:t.onPageDeactivated}),t.initializeApi();var c=J.getPendingEvents();if(c&&(q.dispatch(L.LOAD_PENDING_EVENTS,{events:c}),J.retryPendingEvents(c)),H.on({filter:{type:"lifecycle",name:"activate"},handler:t.activate}),V.emitInitializedEvent(),!ge.shouldActivate())return ie.resolve();var u=[];if(we.isDisabled())n();else{var l=t.initializeXDomainStorage();u.push(l);var d=Boolean(we.getCanonicalOrigins());if(d){var f=ae.makeTimeoutPromise(xe);ie.race([l,f])["catch"]((function(e){$.error("Failed to initialize xDomain storage: ",e)})).then(n)["catch"](Oe.handleError)}else n()}return ie.all(u)},t.activate=function(){try{var e=[];$.log("Activated client"),A(j.Lifecycle.preActivate);var t=M.now();q.dispatch(L.ACTIVATE,{activationId:String(t),activationTimestamp:t});var i=Te.getAll();se.registerViews(i),ce.setId(ce.getOrGenerateId()),e.push(P.trackPostRedirectDecisionEvent()),q.dispatch(L.MERGE_VARIATION_ID_MAP,{variationIdMap:ce.getVariationIdMap()}),q.dispatch(L.MERGE_PREFERRED_LAYER_MAP,{preferredLayerMap:ce.getPreferredLayerMap()}),A(j.Lifecycle.postVisitorProfileLoad),e.push(c(Ie.getAllPlugins(j.PluginTypes.visitorProfileProviders)).then((function(){$.log("Populated visitor profile")})));var n=u(),r=U.decideGlobal(n);$.log("Made global decision",n,"->",r),q.dispatch(L.RECORD_GLOBAL_DECISION,r);var a=P.trackClientActivation();a?$.log("Tracked activation event",a):$.log("Not tracking activation event");var o=Fe.setUpViewActivation(i),s=[];return Le?s=se.activateMultiple(o):w.each(o,(function(e){s=s.concat(se.activateMultiple([e]))})),Pe&&ye.getSampleRum()&&q.dispatch(L.RECORD_VIEWS_INITIALLY_ACTIVATED_COUNT,{viewsInitiallyActivatedCount:s.length}),A(j.Lifecycle.postViewsActivated),A(j.Lifecycle.postActivate),V.emitActivatedEvent(),ie.all(e).then((function(){H.emit({type:K.TYPES.LIFECYCLE,name:"activateDeferredDone"}),$.log("All immediate effects of activation resolved")}),x.emitError)}catch(e){return x.emitError(e),ie.reject(e)}},Fe.setUpViewActivation=function(e){var t=[];return w.each(e,(function(e){w.isBoolean(Ae.getViewState(e.id).isActive)&&se.isActivationTypeImmediate(e.activationType)?$.debug("Skipping page: already evaluated, presumably at the edge",se.description(e)):se.shouldTriggerImmediately(e.activationType)?t.push(e):e.activationType===j.ViewActivationTypes.callback?($.debug("Setting up conditional activation for Page",se.description(e)),Fe.activateViewOnCallback(e)):e.activationType===j.ViewActivationTypes.polling?($.debug("Setting up polling activation for Page",se.description(e)),te.pollFor(w.partial(Y.apply,e.activationCode),null,w.partial(oe.isTimedOut,M.now())).then((function(){se.activateMultiple([e])}))["catch"]((function(t){$.warn("Failed to activate view ",e,t)}))):e.activationType!==j.ViewActivationTypes.manual&&x.emitError(new Error("Unknown view activationType: "+e.activationType))})),t},Fe.activateViewOnCallback=function(e){var t=function(t){var i=w.extend({},t,{pageName:e.apiName,type:"page"});De.push(i)},i={pageId:e.id};Object.defineProperty(i,"isActive",{get:function(){return Ae.isViewActive(e.id)}});try{Y.apply(e.activationCode,[t,i])}catch(t){var n=new O("("+t.toString()+") in activationCode for "+se.description(e));x.emitError(n,{originalError:t,userError:!0})}},t.onViewsActivated=function(e){var t,i=e.data.views,n=w.map(i,"id");try{if(!Re.getBucketingId())throw new Error("View activated with no visitorId set");var r=d(n)["catch"](x.emitError);return t=ie.all(w.map(i,(function(e){var t=function(){se.parseViewTags(e);var t=P.trackViewActivation(e);t?$.log("Tracked activation for Page",se.description(e),t):$.log("Not Tracking activation for Page",se.description(e))};return z.isReady()?ie.resolve(t()):te.pollFor(z.isReady,Ce).then(t)}))),ie.all([r,t])}catch(e){x.emitError(e)}},t.onPageDeactivated=function(e){var t=e.data.page,i=fe.getAllActionIdsByPageId(t.id);w.each(i,(function(e){var i=fe.getActionState(e);i&&(w.each(i,(function(e,i){if(e.cancel)try{e.cancel(),$.debug("Controller / Canceled change",i,"observation due to deactivation of page:",t)}catch(e){$.error("Controller / Error canceling change",i,"observation upon deactivation of page.",e)}if(t.undoOnDeactivation&&e.undo)try{e.undo(),$.debug("Controller / Undid change",i,"due to deactivation of page:",t)}catch(e){$.error("Controller / Error undoing change upon deactivation of page.",e)}})),q.dispatch(L.REMOVE_ACTION_STATE,{actionId:e}),$.debug("Controller / Undid changes and/or canceled change observation due to deactivation of page:",t,e))}))},t.initializeApi=function(){var e={push:De.push};Ve||(e.get=De.get);var t=window.optimizely;w.isArray(t)&&w.each(t,(function(t){e.push(t)})),e.data={note:"Obsolete, use optimizely.get('data') instead"},e.state={},window.optimizely=e},t.persistItemsWithId=function(e){return w.each(e,(function(e,t){ce.checkKeyForVisitorId(t)&&Q.setItem(t,e)})),e},t.initializeXDomainStorage=o,t.decideAndExecuteLayerASAP=p,t.decideLayer=T,t.getActionsForDecision=R}),(function(e,t,i){function n(e,t,i){var n=v.getActionState(t.id);if(!n)return void p.warn("Action / Attempted to prepare change for inactive action: ",t);var r=v.getChangeApplier(e.id,t.id);if(!a.isUndefined(r))return void p.warn("Action / Attempted to prepare a change which is already being applied: ",e);var s={changeId:e.id,actionId:t.id,changeApplier:I.create(e,t,i)};f.dispatch(o.SET_CHANGE_APPLIER,s)}function r(e,t,i,o){if(a.includes(o,t))return void p.error("Change with id "+t+" has circular dependencies: "+o.concat(t));if(!e[t]){var u=E.getChange(t);if(!u){var d="Change with id "+t+" is absent";return o.length&&(d+=" but listed as a dependency for "+o[o.length-1]),void p.warn(d)}e[t]=new g(function(d){var f=a.map(u.dependencies||[],(function(n){return r(e,n,i,o.concat([t]))}));if(u.src){var _="change_"+u.src,m=c.makeAsyncRequest(_,(function(){return h.addScriptAsync("https://cdn.optimizely.com/public/15853140465/data"+u.src,(function(){c.resolveRequest(_)}))})).then((function(){var e=E.getChange(u.id);e||s.emitError(new S("Failed to load async change from src: "+u.src)),n(e,i,l.now())}));f.push(m)}g.all(f).then((function(){var e=l.now(),n=v.getChangeApplier(t,i.id);return n?(p.debug("Action / Applying change:",u),n.apply().then((function(t){t?p.log(t):p.debug("Action / Applied change for the first time in "+(l.now()-e)+"ms:",u),d()}))):(p.debug("Action / Not applying change ",t," - No changeApplier found."),void d())}))["catch"]((function(e){p.error("Action / Failed to apply change:",u,e),d()}))})}return e[t]}var a=i(2),o=i(7),s=i(86),c=i(6),u=i(76).create,l=i(24),d=i(16),f=i(9),p=i(23),g=i(12).Promise,h=i(132),_=d.get("stores/global"),v=d.get("stores/action_data"),E=d.get("stores/change_data"),m=d.get("stores/session"),I=i(135),y=i(136);y.initialize();var S=u("ActionError");t.prepareAction=function(e){p.debug("Action / Preparing:",e),f.dispatch(o.ACTION_EXECUTED,{actionId:e.id,sessionId:m.getSessionId(),layerId:e.layerId,pageId:e.pageId,timestamp:l.now(),activationId:_.getActivationId()});var t=l.now();a.forEach(e.changeSet,(function(i){var r=a.isObject(i)?i.id:i,s=E.getChange(r);s||(f.dispatch(o.ADD_CHANGE,i),s=E.getChange(i.id)),s.src||n(s,e,t)}))},t.executePreparedAction=function(e){p.debug("Action / Executing:",e);var t={},i=a.map(e.changeSet,(function(i){var n=a.isObject(i)?i.id:i;return r(t,n,e,[])}));return g.all(i).then((function(){p.debug("changes for action id="+e.id+" applied")}))}}),(function(e,t,i){var n=i(13).Promise,r=i(24),a=i(16),o=a.get("stores/plugins"),s=i(25),c=i(23);t.create=function(e,t,i){var a={identifier:e.id,action:t,startTime:i||r.now()};try{var u=o.getPlugin(s.PluginTypes.changeAppliers,e.type);if(!u)throw new Error("Unrecognized change type "+e.type);return new u(e,a)}catch(e){c.error("Change applier was never properly constructed:",e);var l={apply:function(){return n.reject(e)}};return l}}}),(function(e,t,i){function n(){"interactive"!==document.readyState&&"complete"!==document.readyState||(t.domReadyTime=Date.now())}var r=i(137),a=i(16).get("stores/directive");t.domReadyTime=null,t.initialize=function(){n(),document.addEventListener("readystatechange",n,!0)},t.isTimedOut=function(e){var i=Date.now();if(!t.domReadyTime||!e)return!1;var n=Math.max(e,t.domReadyTime);return a.isEditor()&&(n=t.domReadyTime),!(i-n-1)return{experimentId:e.experiments[i].id,variationId:e.experiments[i].variations[n].id};return null}function a(e){var t=y.getPlugin(h.PluginTypes.deciders,e);if(s.isEmpty(t))throw new Error("No deciders found for policy: "+e);return t}function o(e,t){var i=y.getAllPlugins(h.PluginTypes.audienceMatchers);return s.reduce(t,(function(t,n){return u.isInAudience(e,n,i)&&t.push(n.id),t}),[])}var s=i(2),c=i(86),u=i(138),l=i(140),d=i(141),f=i(142).DecisionError,p=i(7),g=i(16),h=i(25),_=i(9),v=i(143),E=i(113),m=i(23),I=i(44),y=g.get("stores/plugins"),S=g.get("stores/global"),T=g.get("stores/layer_data");t.isPageIdRelevant=function(e){if(!e)return!1;var t=a(e.policy);return s.isFunction(t.includePageIdInDecisionTicket)?t.includePageIdInDecisionTicket(e):t.includePageIdInDecisionTicket===!0},t.createTicket=function(e){var t=s.pick(e,["bucketingId","globalHoldback","preferredVariationMap","pageId"]);return s.extend(t,{audienceIds:o(e.visitorProfile,e.audiences),activationId:S.getActivationId()}),t},t.decideGlobal=function(e){var t=l.isHoldback(e.bucketingId,{id:null,holdback:e.globalHoldback});return{isGlobalHoldback:t}},t.decideGroup=n,t.decideLayer=function(e,t){m.debug("Deciding: ",e,t);var i,n,r=a(e.policy),o={layerId:e.id,experimentId:null,variationId:null,isLayerHoldback:l.isHoldback(t.bucketingId,e)};if(s.isEmpty(e.experiments))throw new f("No experiments in layer.");try{if(r.decideLayer){m.debug("Decision / Using decider's custom decideLayer.");var u=r.decideLayer(e,t);i=u.experiment,n=u.variation}else m.debug("Decision / Using default decideLayer behavior."),i=r.selectExperiment(e,t.audienceIds,t.bucketingId),n=d.selectVariation(i,t.audienceIds,t.bucketingId,t.activationId,t.preferredVariationMap)}catch(e){e instanceof f?o.reason=e.message:o.error=e}return o.experimentId=i?i.id:null,o.variationId=n?n.id:null,o.error&&(o.error.name="DecisionEngineError",c.emitError(o.error)),o},t.getDummyLayerDecision=function(e,t){var i,n=r(e,t);return n?(m.log("Decision / Applying force variation:",n.variationId,"to Campaign",E.description(e)),i={layerId:e.id,variationId:n.variationId,experimentId:n.experimentId,isLayerHoldback:!1,reason:"force"}):(m.log("No variation matches ids:",t,"in Campaign",E.description(e)),i={layerId:e.id,variationId:null,experimentId:null,isLayerHoldback:!1,reason:"force"}),i},t.isInCohort=function(e){if(!e.experimentId||!e.variationId)return!1;var t=T.get(e.layerId);return!(I.isSingleExperimentPolicy(t.policy)&&e.isLayerHoldback)}}),(function(e,t,i){var n=i(64),r=t.TOTAL_POINTS=1e4;t.bucketingNumber=function(e,t,i){var a=n.hashToInt(e+t,i,r);return a},t.isHoldback=function(e,i){return t.bucketingNumber(e,i.id,n.Seed.IGNORING)<(i.holdback||0)},t.chooseWeightedCandidate=function(e,i,r){for(var a=t.bucketingNumber(e,i,n.Seed.BUCKETING),o=0;oa)return r[o].entityId;throw new Error("Unable to choose candidate")}}),(function(e,t,i){var n=i(2),r=i(140),a=i(124),o=i(142).DecisionError,s=i(23),c=i(9),u=i(7),l="impression";t.isValidExperiment=function(e,t){var i,r=n.partial(n.includes,e);return s.groupCollapsed("Decision / Evaluating audiences for experiment:",t,e),i=!t.audienceIds||a.evaluate(t.audienceIds,r),s.groupEnd(),s.debug("Decision / Experiment",t,"is valid?",i),i},t.selectVariation=function(e,t,i,a,d){if(!e.variations||0===e.variations.length)throw new o('No variations in selected experiment "'+e.id+'"');if(!e.weightDistributions&&e.variations.length>1)throw new o('On selected experiment "'+e.id+'", weightDistributions must be defined if # variations > 1');var f;if(e.bucketingStrategy&&e.bucketingStrategy===l)if(1===e.variations.length)f=e.variations[0].id;else{var p=a;f=r.chooseWeightedCandidate(i+p,e.id,e.weightDistributions)}else if(f=1===e.variations.length?e.variations[0].id:r.chooseWeightedCandidate(i,e.id,e.weightDistributions),d&&d[e.id]){s.debug("Decision / Using preferredVariationMap to select variation for experiment:",e.id);var g=d[e.id];if(!n.find(e.variations,{id:g}))return c.dispatch(u.RECORD_STICKY_BUCKETING_FEATURE,{feature:"stoppedVariation",id:e.id}),s.debug("Decision / Preferred variation:",g,"not found on experiment:",e.id,". Visitor not bucketed."),null;g!==f&&(c.dispatch(u.RECORD_STICKY_BUCKETING_FEATURE,{feature:"preferredVariation",id:e.id}),f=g)}var h=n.find(e.variations,{id:f});if(h)return s.debug("Decision / Selected variation:",h),h;throw new o('Unable to find selected variation: "'+f+'".')},t.getExperimentById=function(e,t){var i=n.find(e.experiments,{id:t});if(i)return i;throw new o("Unable to find selected experiment.")},t.hasVariationActionsOnView=function(e,t){return s.debug("Decision / Checking variation:",e,"for actions on pageId:",t),!!n.find(e.actions,(function(e){return e.pageId===t&&!n.isEmpty(e.changes)}))}}),(function(e,t){function i(e){this.message=e}i.prototype=new Error,t.DecisionError=i}),(function(e,t,i){function n(e){return r.map(e.weightDistributions,"entityId")}var r=i(2);t.description=function(e){var t=!!e.name,i=t?'"'+e.name+'" ':"",r=n(e).join(", ");return i+"(id "+e.id+", campaigns: "+r+")"}}),(function(module,exports,__webpack_require__){var createError=__webpack_require__(77),di=__webpack_require__(16),Logger=__webpack_require__(23),CSP_MODE=!1,EXEC_WITH_JQUERY=!0,ExecError=exports.Error=createError("ExecError");exports.apply=function(e,t){t=t||[],EXEC_WITH_JQUERY&&(t=t.concat(di.get("env/jquery")));try{return e.apply(void 0,t)}catch(i){throw Logger.warn("Error applying function",e,"with args:",t,i),new ExecError(i)}},exports.eval=function(str){if(CSP_MODE)throw new ExecError("eval is not supported in CSP mode");try{return EXEC_WITH_JQUERY&&(str="var $ = optimizely.get('jquery');"+str),eval(str)}catch(e){throw Logger.warn("Error executing JS:",str,e),new ExecError(e)}}}),(function(e,t,i){var n=i(2),r=i(86),a=i(25),o=i(26),s=i(81).LocalStorage,c=i(23),u=i(91),l=i(16),d=l.get("stores/pending_events"),f=a.StorageKeys.PENDING_EVENTS;t.persistPendingEvents=function(){try{var e=d.getEventsString();s.setItem(f,e),i(85).setItem(f,e)}catch(e){c.warn("PendingEvents / Unable to set localStorage key, error was: ",e),r.emitInternalError(e)}},t.getPendingEvents=function(){try{return o.parse(s.getItem(f))}catch(e){return null}},t.retryPendingEvents=function(e){n.forOwn(e,(function(e,t){u.retryableRequest(e.data,t,e.retryCount)})),n.isEmpty(e)||c.log("Retried pending events: ",e)}}),(function(e,t,i){var n=i(2),r=i(12).Promise;t.firstToResolve=function(e){return new r(function(t){n.each(e,(function(e){r.resolve(e).then(t,(function(){}))}))})}}),(function(e,t,i){function n(e){var t=!1;if(a.isArray(window.optimizely)&&a.each(window.optimizely,(function(i){a.isArray(i)&&"verifyPreviewProject"===i[0]&&String(i[1])===e&&(t=!0)})),!t)throw new Error("Preview projectId: "+e+" does not match expected")}function r(){s.on({filter:{type:c.TYPES.ANALYTICS,name:"trackEvent"},handler:f}),s.on({filter:{type:c.TYPES.LIFECYCLE,name:"viewActivated"},handler:f}),s.on({filter:{type:c.TYPES.LIFECYCLE,name:"layerDecided"},handler:f}),s.on({filter:{type:"error"},publicOnly:!0,handler:f})}var a=i(2),o=i(16),s=i(87),c=i(111),u=i(40),l=o.get("stores/directive"),d="optimizelyPreview",f=function(e){var t=u.getGlobal(d);t.push(e)};t.initialize=function(e){l.isSlave()&&n(e),r()},t.setupPreviewGlobal=function(){u.getGlobal(d)||u.setGlobal(d,[])},t.pushToPreviewGlobal=function(e){f(e)}}),(function(e,t,i){e.exports=function(e){e.registerVisitorProfileProvider(i(149))}}),(function(e,t){e.exports={provides:"visitorId",getter:["stores/visitor_id",function(e){return e.getRandomId()}]}}),(function(e,t,i){e.exports=function(e){e.registerVisitorProfileProvider(i(151)),e.registerAudienceMatcher("behavior",i(153))}}),(function(e,t,i){var n=i(152);e.exports={provides:"events",isTransient:!0,getter:[function(){return n.getEvents()}]}}),(function(e,t,i){var n=i(2),r=i(72),a=i(16),o=a.get("stores/visitor_events"),s=1e3;t.getEvents=function(){var e=r.getEvents(),t=[].concat.apply([],n.values(o.getForeignEvents())),i=[].concat.apply([],n.values(o.getForeignEventQueues())),a=r.mergeAllEvents([e,t,i]);return a.slice(a.length-s)}}),(function(e,t,i){var n=i(2),r=i(26),a=i(154),o=i(155);e.exports={fieldsNeeded:["events"],match:function(e,t){var i=[],s=r.parse(t.value);return i=n.isUndefined(s.version)?[s]:a.buildFromSpecV0_1(s),n.every(i,(function(t){return o.isSatisfied(t,e.events)}))}}}),(function(e,t,i){function n(e){return e=(e||"").toString().trim(),p[e]||e}function r(e,t,i){var n={where:t};if(e.count&&(n["limit"]=e.count),e.modifier===s.FREQUENCY_FILTERS.MOST_FREQUENT){var r=s.getFieldKeyPathForSource(e.name,i),a=s.aggregate("count"),o=s.aggregateField("count"),l=s.groupField(r);return c.extend(n,{select:[{field:l}],groupBy:s.groupBy([r]),aggregate:[a],orderBy:[{field:o,direction:"DESC"}]})}return c.extend(n,{orderBy:[{field:[u.FIELDS.TIME],direction:"DESC"}]})}function a(e){var t=[];if(c.isUndefined(e))throw new Error("rule is undefined");if(!c.isObject(e))throw new Error("rule is not an Object");"0.2"!==e["version"]&&t.push('version: not "0.2"'),e["filter"]&&(c.isArray(e["filter"])?c.each(e["filter"],(function(e,i){var n=s.validateFieldKeyPathV0_2(e["field"],s.FieldPurpose.FILTER);n&&t.push("filter["+i+"]: "+n);var r=s.validateComparatorAndValue(e["comparator"],e["value"]);r&&t.push("filter["+i+"]: "+r)})):t.push("filter: not an array"));var i=[],n=[];if(e["sort"]&&(e["reduce"]&&e["reduce"]["aggregator"]&&"nth"!==e["reduce"]["aggregator"]&&t.push("sort: superfluous because we can apply aggregator "+l.stringify(e["reduce"]["aggregator"])+" to unsorted items"),c.isArray(e["sort"])?c.each(e["sort"],(function(e,r){var a=s.validateFieldKeyPathV0_2(e["field"],s.FieldPurpose.SORT);a&&t.push("sort["+r+"]: "+a),e["field"]&&"frequency"===e["field"][0]?i.push(e):n.push(e);var c=o(e["direction"]);c&&t.push("sort["+r+"]: "+c)})):t.push("sort: not an array"),i.length&&n.length&&t.push('sort: sorting by non-["frequency"] field is pointless because we are going to sort the picked values by ["frequency"]'),i.length&&!e["pick"]&&t.push('sort: sorting by ["frequency"] is impossible because no values have been picked')),e["pick"]){e["reduce"]&&"count"===e["reduce"]["aggregator"]&&t.push('pick: superfluous because we can apply aggregator "count" to raw events');var r=s.validateFieldKeyPathV0_2(e["pick"]["field"]);r&&t.push("pick: "+r)}if(e["reduce"]){var a=e["reduce"]["aggregator"],u="aggregator "+(l.stringify(a)||String(a)),d=e["reduce"]["n"],f="index "+(l.stringify(d)||String(d));c.includes(["sum","avg","max","min","count","nth"],a)||t.push("reduce: "+u+" is unknown"),c.includes(["sum","avg","max","min"],a)&&(e["pick"]||t.push("reduce: "+u+" is impossible to use because no values have been picked")),"nth"===a?((!c.isNumber(d)||isNaN(d)||parseInt(d,10)!==d||d<0)&&t.push("reduce: "+f+" is not a non-negative integer (mandated by "+u+")"),e["sort"]||t.push('reduce: aggregator "nth" is meaningless without a specific sort order')):c.isUndefined(d)||t.push("reduce: "+f+" is defined (not mandated by "+u+")")}if(t.length)throw new Error(t.join("\n"))}function o(e){var t="direction "+(l.stringify(e)||String(e));if(!c.includes(["ascending","descending"],e))return t+' is not "ascending" or "descending"'}var s=t,c=i(2),u={FIELDS:i(63).FIELDS,FIELDS_V0_2:i(63).FIELDS_V0_2},l=i(26),d=i(23),f=i(155);s.MILLIS_IN_A_DAY=864e5,s.aggregateField=function(e,t){return c.isString(t)&&(t=[t]),t=t||f.DEFAULT_FIELD,[f.generateAlias(e,t)]},s.groupField=function(e){return c.isString(e)&&(e=[e]),e=e||f.DEFAULT_FIELD,[e.join(".")]};var p={"<":"lt","<=":"lte",">":"gt",">=":"gte","=":"eq","==":"eq"};s.fieldComparison=function(e,t,i){return e=n(e),c.isString(t)&&(t=[t]),"exists"===e?{op:e,args:[{field:t}]}:{op:e,args:[{field:t},{value:i}]}},s.relativeTimeComparison=function(e,t){return{op:n(e),args:[{op:"-",args:[{eval:"now"},{field:[u.FIELDS.TIME]}]},{value:t*s.MILLIS_IN_A_DAY}]}},s.rangeTimeComparison=function(e){return c.isArray(e)?{op:"between",args:[{field:[u.FIELDS.TIME]},{value:[e[0]||+new Date(0),e[1]||+new Date]}]}:(d.error("Rule builder","rangeTimeComparison passed invalid range",e),null)},s.groupBy=function(e){for(var t=[],i=0;i0)throw new Error('A "pick" clause must not be specified with "count" or "most_recent", "most_frequent" modifiers'+l.stringify(e));return[r(e.pick,t,e.source)]}return i.length>0?i:[{where:t}]},s.buildFromSpecV0_2=function(e){a(e);var t={where:{op:"and",args:c.map(e["filter"]||[],(function(e){return"age"===e["field"][0]?s.relativeTimeComparison(e["comparator"]||"eq",e["value"]/s.MILLIS_IN_A_DAY):s.fieldComparison(e["comparator"]||"eq",s.convertFieldKeyPathFromSpecV0_2(e["field"]),e["value"])}))}};if(e["reduce"]&&"count"===e["reduce"]["aggregator"])return c.extend(t,{aggregate:[{op:"count",args:[{field:["*"]}]}],select:[{field:["_count_*"]}]});var i=[],n=[];if(e["sort"]&&(c.each(e["sort"],(function(e){c.includes(["ascending","descending"],e["direction"])&&(c.includes(["time","age"],e["field"][0])&&n.push(e),"frequency"===e["field"][0]&&i.push(e))})),n.length&&!i.length&&(t["orderBy"]=c.filter(c.map(n,(function(e){return"time"===e["field"][0]?{field:s.convertFieldKeyPathFromSpecV0_2(["time"]),direction:"ascending"===e["direction"]?"ASC":"DESC"}:"age"===e["field"][0]?{field:s.convertFieldKeyPathFromSpecV0_2(["time"]),direction:"ascending"===e["direction"]?"DESC":"ASC"}:void 0}))))),e["pick"]&&e["pick"]["field"]){var r=s.convertFieldKeyPathFromSpecV0_2(e["pick"]["field"]);if(e["reduce"]&&c.includes(["avg","max","min","sum"],e["reduce"]["aggregator"]))return c.extend(t,{aggregate:[{op:e["reduce"]["aggregator"],args:[{field:r}]}],select:[{field:[f.generateAlias(e["reduce"]["aggregator"],r)]}]});t=i.length?c.extend(t,{groupBy:[{field:r}],aggregate:[{op:"count",args:[{field:["*"]}]}],orderBy:[{field:["_count_*"],direction:"ascending"===i[0]["direction"]?"ASC":"DESC"}],select:[{field:[r.join(".")]}]}):c.extend(t,{select:[{field:r}]})}if(e["reduce"]&&"nth"===e["reduce"]["aggregator"]){var o=e["reduce"]["n"];if(c.isNumber(o)&&o>=0&&Number(o)===Math.floor(Number(o)))return c.extend(t,{offset:o,limit:1})}return t},s.convertFieldKeyPathFromSpecV0_2=function(e){return"tags"===e[0]&&"revenue"===e[1]?["r"]:[u.FIELDS_V0_2[e[0]]].concat(e.slice(1))},s.FieldPurpose={FILTER:"filter",SORT:"sort",PICK:"pick"},s.validateFieldKeyPathV0_2=function(e,t){var i="field "+(l.stringify(e)||String(e));if(!c.isArray(e)||!c.every(e,c.isString))return i+" is not an array of strings";if("tags"===e[0]&&e.length>2||"tags"!==e[0]&&e.length>1)return i+" includes too many strings";if("tags"===e[0]&&e.length<2)return i+" does not specify an exact tag";if(e.length<1)return i+" does not specify a top-level field";var n=c.keys(u.FIELDS_V0_2),r=["age","frequency"];return t===s.FieldPurpose.FILTER&&(n.push("age"),r=["frequency"]),t===s.FieldPurpose.SORT&&(n=["time","age","frequency"],r=["name","type","category","tags"]),c.includes(r,e[0])?i+" is not supported here":c.includes(n,e[0])?void 0:i+" is unknown"},s.validateComparatorAndValue=function(e,t){var i="comparator "+(l.stringify(e)||String(e)),n="value "+(l.stringify(t)||String(t));if(!c.isString(e)&&!c.isUndefined(e))return i+" is not a string";switch(e){case void 0:case"eq":case"is":case"contains":break;case"lt":case"gt":case"lte":case"gte":if(!c.isNumber(t))return n+" is not a number (mandated by "+i+")";break;case"in":if(!c.isArray(t))return n+" is not an array (mandated by "+i+")";break;case"between":if(!(c.isArray(t)&&2===t.length&&c.isNumber(t[0])&&c.isNumber(t[1])&&t[0]<=t[1]))return n+" is not a pair of increasing numbers (mandated by "+i+")";break;case"regex":if(!(c.isString(t)||c.isArray(t)&&2===t.length&&c.isString(t[0])&&c.isString(t[1])))return n+" is not a pattern string or a [pattern string, flags string] array (mandated by "+i+")";break;case"exists":if(!c.isUndefined(t))return n+" is not undefined (mandated by "+i+")";break;default:return i+" is unknown"}}}),(function(e,t,i){var n=i(2),r=i(25),a=i(23),o=n.bind(a.log,a),s=i(24),c=i(19).getFieldValue,u=i(26),l=function(e,t,i){if(e.getValueOrDefault)return e.getValueOrDefault(t,i);if(!n.isArray(t))return i;var r=c(e,t);return"undefined"==typeof r&&(r=i),r},d=function(e){return"string"==typeof e?e.trim().toLowerCase():e};t.clause={WHERE:"where",GROUP_BY:"groupBy",AGGREGATE:"aggregate",HAVING:"having",ORDER_BY:"orderBy",SELECT:"select",OFFSET:"offset",LIMIT:"limit",FROM:"from"},t.DEFAULT_FIELD=["*"],t.booleanOperators={eq:function(e){var t=n.map(e,d);return t[0]==t[1]},is:function(e){return e[0]===e[1]},gt:function(e){return e[0]>e[1]},lt:function(e){return e[0]=e[1]},lte:function(e){return e[0]<=e[1]},"in":function(e){var t=n.map(e[1]||[],d);return n.includes(t,d(e[0]))},between:function(e){return e[1][0]<=e[0]&&e[0]<=e[1][1]},contains:function(e){var t=n.map(e,(function(e){
return"string"==typeof e?e.toLowerCase():e}));return(t[0]||"").indexOf(t[1])!==-1},regex:function(e){try{var t,i;return n.isString(e[1])?(t=e[1],i="i"):(t=e[1][0]||"",i=e[1][1]||""),new RegExp(t,i).test(e[0])}catch(e){return a.error("Rules",'In operator "regex", error: '+(e.message||"invalid RegExp /"+[t,i].join("/"))),!1}},exists:function(e){return"undefined"!=typeof e[0]},and:function(e){return n.every(e,(function(e){return e}))},or:function(e){return n.some(e,(function(e){return e}))},not:function(e){return!e[0]}},t.arithmeticOperators={"+":function(e){return(e[0]||0)+(e[1]||0)},"-":function(e){return(e[0]||0)-(e[1]||0)},"/":function(e){return(e[0]||0)/(e[1]||1)},"%":function(e){return(e[0]||0)%(e[1]||1)}},t.aggregateOperators={sum:function(e,i){for(var n=e[0]||t.DEFAULT_FIELD,r=0,a=0;au)return o}return 0})):(o("Rules","groupBy rule must be an array"),t)};t.rewrite=function(e){function i(e,s){if(n.isArray(e)&&("and"!==e[0]&&"or"!==e[0]&&"not"!==e[0]&&a.error("Rules","Unexpected operation "+e[0]+". Continuing optimistically."),e={op:e[0],args:e.slice(1)}),e.hasOwnProperty("field")||e.hasOwnProperty("value")||e.hasOwnProperty("eval"))return e;if(s&&e["op"]in t.aggregateOperators){var c=(e["args"]&&e["args"][0]||{})["field"]||t.DEFAULT_FIELD,u=t.generateAlias(e["op"],c);return u in o||(r.push({op:e["op"],args:e["args"]}),o[u]=!0),{field:[u]}}for(var l=[],d=e["args"]||[],f=0;f0)&&(s[t.clause.AGGREGATE]=(e[t.clause.AGGREGATE]||[]).concat(r));for(var c=[t.clause.GROUP_BY,t.clause.ORDER_BY,t.clause.SELECT,t.clause.OFFSET,t.clause.LIMIT],u=0;u0&&(r=n.map(r,(function(e){return"Sub-rule "+i+": "+e}))),e.hasOwnProperty(t.clause.FROM)&&(r=r.concat(m(e[t.clause.FROM],i+1))),r},I=function(e,t){return n.map(t,(function(t){return n.map(e,(function(e){return g(t,e)}))}))},y=function(e,i){var r=i;if(e.hasOwnProperty(t.clause.FROM)&&(a.debug("Evaluating FROM clause:",e[t.clause.FROM]),r=y(e[t.clause.FROM],r),a.debug("Results after FROM:",r)),a.debug("Evaluating WHERE clause:",e[t.clause.WHERE]),r=n.filter(r,(function(i){return g(i,e[t.clause.WHERE])})),a.debug("Results after WHERE:",r),e.hasOwnProperty(t.clause.AGGREGATE)){a.debug("Evaluating AGGREGATE clause:",e[t.clause.AGGREGATE]);var o=h(e[t.clause.GROUP_BY],r),s=_(e[t.clause.AGGREGATE],o);r=v(o,s),a.debug("Results after AGGREGATE:",r)}e.hasOwnProperty(t.clause.HAVING)&&(a.debug("Evaluating HAVING clause:",e[t.clause.HAVING]),r=n.filter(r,(function(i){return g(i,e[t.clause.HAVING])})),a.debug("Results after HAVING:",r)),e.hasOwnProperty(t.clause.ORDER_BY)&&(a.debug("Evaluating ORDER_BY clause:",e[t.clause.ORDER_BY]),r=E(e[t.clause.ORDER_BY],r),a.debug("Results after ORDER_BY:",r));var c=0;e.hasOwnProperty(t.clause.OFFSET)&&(a.debug("Evaluating OFFSET clause:",e[t.clause.OFFSET]),c=Number(e[t.clause.OFFSET]));var u;return e.hasOwnProperty(t.clause.LIMIT)&&(a.debug("Evaluating LIMIT clause:",e[t.clause.LIMIT]),u=c+Number(e[t.clause.LIMIT])),(c>0||!n.isUndefined(u))&&(r=r.slice(c,u),a.debug("Results after OFFSET/LIMIT:",r)),e.hasOwnProperty(t.clause.SELECT)&&(a.debug("Evaluating SELECT clause:",e[t.clause.SELECT]),r=I(e[t.clause.SELECT],r),a.debug("Results after SELECT:",r)),r};t.execute=function(e,i){e=t.rewrite(e),a.shouldLog(r.LogLevel.DEBUG)&&a.groupCollapsed("Evaluating Behavioral Rule"),a.debug("Rule:",e,u.stringify(e)),a.debug("Events:",i);var n=m(e);if(n.length>0)throw new Error("Rule "+u.stringify(e)+" has violations: "+n.join("\n"));var o=y(e,i);return a.debug("Rule result:",o),a.shouldLog(r.LogLevel.DEBUG)&&a.groupEnd(),o},t.isSatisfied=function(e,i){try{return t.execute(e,i).length>0}catch(t){return a.error("Rules","Error "+t.toString()+" while evaluating rule "+u.stringify(e)),!1}}}),(function(e,t,i){e.exports=function(e){e.registerVisitorProfileProvider(i(157))}}),(function(e,t,i){var n=i(2),r=i(158),a=i(152),o=i(26),s=i(154);e.exports={provides:"customBehavior",shouldTrack:!0,isLazy:!1,getter:["stores/global","stores/visitor_attribute_entity",function(e,t){var i=e.getProjectId(),c=n.filter(n.map(t.getCustomBehavioralAttributes(i),(function(e){try{return{id:e.id,granularity:r.GRANULARITY.ALL,rule:s.buildFromSpecV0_2(o.parse(e.rule_json))}}catch(e){return}}))),u=a.getEvents();return r.evaluate(c,u)}]}}),(function(e,t,i){function n(e){if(0===e.length)return[];for(var t=e.length-1,i=o.FIELDS.SESSION_ID,n=e[t][i];t>0&&n===e[t-1][i];)t--;return e.slice(t)}function r(e,t){if(0===e.length||t<=0)return[];var i=+new Date-t*s.MILLIS_IN_A_DAY;i-=i%s.MILLIS_IN_A_DAY;for(var n=e.length;n>0&&i<=e[n-1][o.FIELDS.TIME];)n--;return e.slice(n)}var a=i(23),o={FIELDS:i(63).FIELDS},s=i(154),c=i(155);t.GRANULARITY={ALL:"all",CURRENT_SESSION:"current_session",LAST_30_DAYS:"last_30_days",LAST_60_DAYS:"last_60_days"},t.evaluate=function(e,i){var o={};if(0===i.length){for(var s=0;s0){var t=e[0],i=a(t,[n.FIELDS.SESSION_INDEX]);return i===o}return!0}]}}),(function(e,t){e.exports={fieldsNeeded:["first_session"],match:function(e){return!!e.first_session}}}),(function(e,t,i){e.exports=function(e){e.registerApiModule("behavior",i(163))}}),(function(e,t,i){function n(e,t){var i=d.buildFromSpecV0_1(t);if(1!==i.length)throw new Error("Invalid query descriptor; verify that no aggregators are specified");return f.execute(i[0],e)}function r(e,t){return u.map(e,(function(e){return u.isFunction(e.toObject)?e.toObject(t):e}))}function a(e,t){if(!e)return["Descriptor not defined"];var i=[];return e.count&&i.push('Unexpected "count" clause specified'),e.pick&&e.pick.modifier&&t.indexOf(e.pick.modifier)===-1&&i.push('Invalid "pick" modifier "'+e.pick.modifier+'"'),u.each(e.filters,(function(e){u.isUndefined(e.modifier)||i.push('Unexpected "filter" modifier "'+e.modifier+'"')})),i.length>0?i:void 0}function o(e,t){var i,o={revenueAsTag:!1,timeAsTimestamp:!0};if(u.isUndefined(t))return i=l.getEvents(e),r(i,o);if(u.isNumber(t)){if(t<=0)throw new Error("Count must be a positive integer, got "+t);return i=l.getEvents(e),r(i.slice(-t),o)}var s=a(t,u.values(d.RECENCY_FILTERS));if(s)throw new Error(s.join("\n"));return i=l.getEvents(e),r(n(i,t),o)}function s(e,t){if(t=u.cloneDeep(t)||{},!t.pick)throw new Error('No "pick" clause provided in query descriptor');if(!t.pick.name)throw new Error('No field name provided in "pick" clause');t.pick.modifier=t.pick.modifier||d.FREQUENCY_FILTERS.MOST_FREQUENT;var i=a(t,u.values(d.FREQUENCY_FILTERS));if(i)throw new Error(i.join("\n"));var r=l.getEvents(e);return n(r,t)}function c(e,t){var i=d.buildFromSpecV0_2(t),n=l.getEvents(e),a=r(f.execute(i,n),{revenueAsTag:!0,timeAsTimestamp:!1});return(t.pick||t.reduce&&"count"===t.reduce.aggregator)&&(a=u.flatten(a)),t.reduce&&(a=a[0]),a}var u=i(2),l=i(152),d=i(154),f=i(155);e.exports=["stores/visitor_events",function(e){return{getEvents:u.partial(o,e),getByFrequency:u.partial(s,e),query:u.partial(c,e)}}]}),(function(e,t,i){e.exports=function(e){e.registerDependency("sources/browser_id",i(165)),e.registerVisitorProfileProvider(i(170)),e.registerVisitorProfileProvider(i(171)),e.registerAudienceMatcher("browser_version",i(172))}}),(function(e,t,i){var n=i(166);t.getId=function(){return n.get().browser.id},t.getVersion=function(){return n.get().browser.version}}),(function(e,t,i){var n=i(2),r=i(167),a=i(40),o=i(7),s=i(16),c=i(9),u=s.get("stores/ua_data");t.get=function(){var e=u.get();return n.isEmpty(e)&&(e=r.parseUA(a.getUserAgent()),c.dispatch(o.SET_UA_DATA,{data:e})),e}}),(function(e,t,i){function n(e){if(e=(e||"").toLowerCase(),e in c)return e;var t=a.keys(c);return a.find(t,(function(t){var i=c[t];return a.includes(i,e)}))||"unknown"}function r(e,t,i){return t?t:"unknown"===e?"unknown":i?"mobile":"desktop_laptop"}var a=i(2),o=i(168);t.parseUA=function(e){var t=new o(e),i=t.getBrowser(),a=t.getOS(),c=t.getDevice(),l=(a.name||"unknown").toLowerCase(),d=(i.name||"unknown").toLowerCase(),f=s(c.type,d,l);return{browser:{id:n(i.name),version:i.version},platform:{name:l,version:a.version},device:{model:u[c.model]||"unknown",type:r(d,c.type,f),isMobile:f}}};var s=function(e,t,i){if(a.includes(["mobile","tablet"],e))return!0;if(a.includes(["opera mini"],t))return!0;var n=["android","blackberry","ios","windows phone"];return!!a.includes(n,i)},c={gc:["chrome","chromium","silk","yandex","maxthon","chrome webview"],edge:["edge"],ie:["internet explorer","iemobile"],ff:["firefox","iceweasel"],opera:["opera","opera mini","opera tablet"],safari:["safari","mobile safari","webkit"],ucbrowser:["uc browser"]},u={iPhone:"iphone",iPad:"ipad"}}),(function(e,t,i){var n;!(function(r,a){"use strict";var o="0.7.17",s="",c="?",u="function",l="undefined",d="object",f="string",p="major",g="model",h="name",_="type",v="vendor",E="version",m="architecture",I="console",y="mobile",S="tablet",T="smarttv",A="wearable",R="embedded",b={extend:function(e,t){var i={};for(var n in e)t[n]&&t[n].length%2===0?i[n]=t[n].concat(e[n]):i[n]=e[n];return i},has:function(e,t){return"string"==typeof e&&t.toLowerCase().indexOf(e.toLowerCase())!==-1},lowerize:function(e){return e.toLowerCase()},major:function(e){return typeof e===f?e.replace(/[^\d\.]/g,"").split(".")[0]:a},trim:function(e){return e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")}},w={rgx:function(e,t){for(var i,n,r,o,s,c,l=0;l0?2==o.length?typeof o[1]==u?this[o[0]]=o[1].call(this,c):this[o[0]]=o[1]:3==o.length?typeof o[1]!==u||o[1].exec&&o[1].test?this[o[0]]=c?c.replace(o[1],o[2]):a:this[o[0]]=c?o[1].call(this,c,o[2]):a:4==o.length&&(this[o[0]]=c?o[3].call(this,c.replace(o[1],o[2])):a):this[o]=c?c:a;l+=2}},str:function(e,t){for(var i in t)if(typeof t[i]===d&&t[i].length>0){for(var n=0;nNumber(i[a]))return 1}}return 0}}),(function(e,t,i){e.exports=function(e){e.registerVisitorProfileProvider(i(175)),e.registerAudienceMatcher("campaign",i(176))}}),(function(e,t,i){var n=i(119);e.exports={provides:"campaign",shouldTrack:!0,isSticky:!0,getter:[function(){return n.getQueryParamValue("utm_campaign")}]}}),(function(e,t,i){var n=i(20);e.exports={fieldsNeeded:["campaign"],match:function(e,t){return n.hasMatch(t.value,t.match,e.campaign)}}}),(function(e,t,i){e.exports=function(e){e.registerVisitorProfileProvider(i(178)),e.registerAudienceMatcher("cookies",i(179))}}),(function(e,t,i){var n=i(2),r=i(75),a=i(16),o=a.get("stores/audience_data");e.exports={provides:"cookies",isLazy:!0,getter:[function(){var e=r.getAll(),t=o.getFeaturesNeeded("cookies");return n.reduce(e,(function(e,i,r){return n.has(t,r)&&(e[r]=i),e}),{})}]}}),(function(e,t,i){var n=i(20);e.exports={fieldsNeeded:["cookies"],match:function(e,t){var i=t.name,r=t.value,a=t.match,o=e.cookies[i];return n.hasMatch(r,a,o)}}}),(function(e,t,i){e.exports=function(e){e.registerVisitorProfileProvider(i(181));var t=i(182);e.registerAudienceMatcher("custom_attribute",t),e.registerAudienceMatcher("custom_dimension",t)}}),(function(e,t,i){var n=i(2),r=i(25),a=i(23),o=i(16),s=o.get("stores/dimension_data");e.exports={provides:"custom",attributionType:r.AttributionTypes.LAST_TOUCH,restorer:function(e){return n.reduce(e,(function(e,t,i){var r=i,o=s.getByApiName(i),c=s.getById(i),u=c;return n.isObject(t)?(!t.id&&o&&(u=o,r=o.id,n.extend(t,{id:u.segmentId||u.id})),t.name||u&&u.apiName&&(t.name=u.apiName),t.id||u||a.warn("Unable to determine ID for custom attribute:",i,"; segmentation is disabled."),e[r]=t,e):(a.error('Unable to restore custom attribute "'+i+'" because value is not an object'),e)}),{})},shouldTrack:!0}}),(function(e,t,i){var n=i(2),r=i(20);t.match=function(e,t){var i;return e.custom&&(i=e.custom[t.name]),n.isObject(i)&&(i=i.value),r.hasMatch(t.value,t.match,i)}}),(function(e,t,i){e.exports=function(e){e.registerDependency("sources/device",i(184)),e.registerVisitorProfileProvider(i(185)),e.registerAudienceMatcher("device",i(186))}}),(function(e,t,i){var n=i(166);t.getDevice=function(){var e=n.get().device;return"unknown"!==e.model?e.model:"tablet"===e.type?"tablet":e.isMobile?"mobile":"desktop"}}),(function(e,t){e.exports={provides:"device",shouldTrack:!0,isSticky:!0,getter:["sources/device",function(e){return e.getDevice()}]}}),(function(e,t){e.exports={fieldsNeeded:["device"],match:function(e,t){return e.device===t.value}}}),(function(e,t,i){e.exports=function(e){e.registerVisitorProfileProvider(i(188)),e.registerAudienceMatcher("device_type",i(189))}}),(function(e,t,i){var n=i(166);e.exports={provides:"device_type",shouldTrack:!0,isSticky:!0,getter:[function(){var e=n.get().device;switch(e.type){case"mobile":return"phone";case"tablet":case"desktop_laptop":return e.type;default:return"other"}}]}}),(function(e,t){e.exports={fieldsNeeded:["device_type"],match:function(e,t){return e.device_type===t.value}}}),(function(e,t,i){e.exports=function(e){e.registerVisitorProfileProvider(i(191)),e.registerAudienceMatcher("ip",i(193))}}),(function(e,t,i){var n=i(192);e.exports={isAsync:!0,provides:"IP",getter:[function(){return n.getIP()}]}}),(function(e,t,i){function n(){a.addScriptAsync(s)}var r=i(6),a=i(132),o="cdn3";t.getIP=function(){return r.makeAsyncRequest(o,n).then((function(e){return e.ip}))},t.getIPDerivedGeolocation=function(){return r.makeAsyncRequest(o,n).then((function(e){return e.location}))};var s="//cdn3.optimizely.com/js/geo2.js"}),(function(e,t,i){var n=i(194).CIDR;e.exports={fieldsNeeded:["IP"],match:function(e,t){if(!e.hasOwnProperty("IP"))return!1;var i=e.IP,r=t["value"],a=t["match"];switch(a){case"prefix":if(0===i.indexOf(r))return!0;break;case"regex":try{var o=new RegExp(r)}catch(e){return!1}if(o.test(i))return!0;break;case"cidr":try{var s=new n(r);return s.containsIP(i)}catch(e){return!1}break;default:if(i===r&&""!==i)return!0}return!1}}}),(function(e,t,i){var n=t.CIDR=function(e){this.cidrString=e.trim();var t=a(this.cidrString);if(null===t)throw new Error("Invalid CIDR specification");this.maskedAddress=t.maskedAddress,this.mask=t.mask},r=4;n.prototype.containsIP=function(e){var t=o(e);if(null===t)throw new Error("Invalid ip: "+e);for(var i=0;i32)return null;var n=o(t[0]);if(null===n)return null;for(var a=u(i),s=0;s3)return null;var t=parseInt(e,10);return isNaN(t)?null:e!==t.toString()?null:t<0||t>255?null:t},c=[0,128,192,224,240,248,252,254,255],u=function(e){if(e<0||e>32)return null;for(var t=[],i=0;i0&&(t[1]="?"+o.join("&")),r&&(t[1]+="#"+r),t.join("")}return e}var s=i(2);e.exports=function(e,t){e=o(e);var i=t.value;switch(t.match){case"exact":return e=a(e),e===a(i);case"regex":try{return Boolean(e.match(i))}catch(e){}return!1;case"simple":return e=r(e),i=r(i),e===i;case"substring":return e=a(e,!0),i=a(i,!0),e.indexOf(i)!==-1;default:return!1}};var c=["www."],u="optimizely_",l=["https?://.*?.?optimizelyedit.(com|test)/","https?://.*.?optimizelypreview.(com|test)/","https?://(edit|preview)(-hrd|-devel)?.optimizely.(com|test)/","https?://.*?.?optimizelyedit(-hrd)?.appspot.com/","https?://"]}),(function(e,t,i){e.exports=function(e){e.registerVisitorProfileProvider(i(200)),e.registerAudienceMatcher("source_type",i(202))}}),(function(e,t,i){var n=i(119),r=i(80),a=i(99),o=i(201),s=["google\\.\\w{2,3}(\\.\\w{2,3})?/(search|url)","https://(www)?\\.google\\..*?/$","bing\\.\\w{2,3}(\\.\\w{2,3})?/(search|url)","yahoo\\.\\w{2,3}(\\.\\w{2,3})?/search","baidu\\.\\w{2,3}(\\.\\w{2,3})?/s?"];e.exports={provides:"source_type",shouldTrack:!0,isSticky:!1,getter:[function(){return function(e,t){var i=function(){if(n.getQueryParamValue("utm_source")||n.getQueryParamValue("gclid")||n.getQueryParamValue("otm_source"))return"campaign";for(var e=a.getReferrer()||r.getReferrer(),t=0;t=s&&u<=c&&a.includes(o.days,l)}}),(function(e,t,i){function n(e){function t(e,t,i){try{c(t),e[i]=t}catch(e){C.emitError(new X("Bad value for eventTags["+i+"]: "+e.message))}return e}var i=N.keys(ie),n=N.omit(e,i),r=N.pick(e,i),a=N.reduce(n,t,{}),o=N.reduce(r,(function(e,i,n){var r=ie[n];r.excludeFeature||t(a,i,n);try{r.validate(i),e[n]=r.sanitize(i),a[n]=e[n]}catch(e){C.emitError(new X("Bad value for eventMetrics["+n+"]: "+e.message))}return e}),{});return o.tags=a,o}function r(e){var t=N.extend({entity_id:e.pageId,key:e.pageApiName,timestamp:e.timestamp,uuid:e.eventId,type:J},n(e.eventTags));return t}function a(e){return N.extend({entity_id:e.eventEntityId,key:e.eventApiName,timestamp:e.timestamp,uuid:e.eventId,type:e.eventCategory},n(e.eventTags))}function o(e){return N.extend({entity_id:e.eventEntityId,key:e.eventApiName,timestamp:e.timestamp,uuid:e.eventId,type:e.eventCategory},n(e.eventTags))}function s(e){return{entity_id:null,type:Q,uuid:e.eventId,timestamp:e.timestamp}}function c(e){if(null==e)throw new Error("Feature value is null");if("object"==typeof e){var t;try{t=x.stringify(e)}catch(e){}throw new Error('Feature value is complex: "'+t||'[object]"')}}function u(e){if(null==e)throw new Error("Metric value is null");if(!N.isNumber(e))throw new Error("Metric value is not numeric")}function l(e){return N.reduce(e,(function(e,t){try{c(t.value),e.push({entity_id:t.id||null,key:t.name,type:t.type,value:t.value})}catch(e){F.warn("Error evaluating user feature",t,e)}return e}),[])}function d(e,t,i){Y.dispatch(V.REGISTER_TRACKER_EVENT,{event:e,decisions:i}),f(t),w()}function f(e){var t=l(e);Y.dispatch(V.UPDATE_TRACKER_VISITOR_ATTRIBUTES,{attributes:t})}function p(e){var t=l(e.userFeatures),i={account_id:e.accountId,anonymize_ip:e.anonymizeIP,client_name:e.clientName,client_version:e.clientVersion,project_id:e.projectId,visitors:[{session_id:h(e.sessionId),visitor_id:e.visitorId,attributes:t,snapshots:[{decisions:[{campaign_id:e.layerId,experiment_id:e.experimentId,variation_id:e.variationId,is_campaign_holdback:e.isLayerHoldback}],events:[{uuid:e.decisionId,entity_id:e.layerId,timestamp:e.timestamp,type:$}]}]}]};Y.dispatch(V.REGISTER_PREVIOUS_BATCH,i),w()}function g(e){var t=N.isNull(q.getAnonymizeIP())?void 0:q.getAnonymizeIP(),i={account_id:e.accountId,anonymize_ip:t,client_name:e.clientName,client_version:e.clientVersion,project_id:e.projectId,visitors:[]};i.revision=e.revision,Z&&(i.enrich_decisions=!0);var n={session_id:h(e.sessionId),visitor_id:e.visitorId,attributes:[],snapshots:[]},r=D(e.layerStates);Y.dispatch(V.REGISTER_TRACKER_VISITOR,{data:i,visitor:n,decisions:r}),w()}function h(e){return oe?ae:e}function _(e){var t={entity_id:e.layerId,type:$,uuid:e.decisionId,timestamp:e.timestamp};Y.dispatch(V.REGISTER_TRACKER_DECISION,{decisionEvent:t,decisions:D(e.layerStates)}),f(e.userFeatures),w()}function v(){if(!W.canSend())return void F.debug("Not sending events (holding)");var e=W.hasEventsToSend(),t=W.hasPreviousBatchesToSend();return e||t?(t&&(N.each(W.getPreviousBatches(),E),Y.dispatch(V.RESET_TRACKER_PREVIOUS_BATCHES)),void(e&&(Y.dispatch(V.FINALIZE_BATCH_SNAPSHOT),E(W.getEventBatch()),Y.dispatch(V.RESET_TRACKER_EVENTS)))):void F.debug("Not sending events because there are no events to send")}function E(e){F.debug("Sending ticket:",e);var t=L.generate();B.retryableRequest({url:P,method:"POST",data:m(e)},t)}function m(e){var t=N.extend({},N.pick(e,["account_id","anonymize_ip","client_name","client_version","enrich_decisions","project_id","revision"]),{visitors:N.map(e.visitors,I)});return t}function I(e){return{visitor_id:e.visitor_id,session_id:ae,attributes:N.map(e.attributes,y),snapshots:N.map(e.snapshots,S)}}function y(e){return b(e,{entity_id:"e",key:"k",type:"t",value:"v"})}function S(e){var t=e.events;return t=T(t),{activationTimestamp:q.getActivationTimestamp(),decisions:N.map(e.decisions,A),events:N.map(t,R)}}function T(e){var t=N.reduce(e,(function(e,t){var i,n=t.type===J&&N.isEmpty(t.tags)&&N.isEmpty(N.pick(t,N.keys(ie)));if(i=n?t.type:t.uuid,e[i]){var r=e[i].timestamp;t.timestamp>r&&(r=t.timestamp),e[i]=N.extend({},e[i],{key:e[i].key+"-"+(t.key||""),entity_id:e[i].entity_id+"-"+t.entity_id,timestamp:r})}else e[i]=t;return e}),{});return N.values(t)}function A(e){return b(e,{campaign_id:"c",experiment_id:"x",is_campaign_holdback:"h",variation_id:"v"})}function R(e){return e.key===$&&(e.type=$,delete e.key),b(e,{entity_id:"e",key:"k",quantity:"q",revenue:"$",tags:"a",timestamp:"t",uuid:"u",value:"v",type:"y"})}function b(e,t){return N.reduce(e,(function(e,i,n){return n in t&&(e[t[n]||n]=i),e}),{})}function w(){function e(){var t=!ne||j.isLoaded();t&&v(),W.isPolling()&&G.setTimeout(e,te)}return W.shouldBatch()?void(W.isPolling()||(G.setTimeout(e,te),Y.dispatch(V.SET_TRACKER_POLLING,!0),G.setTimeout((function(){Y.dispatch(V.SET_TRACKER_BATCHING,!1),Y.dispatch(V.SET_TRACKER_POLLING,!1)}),ee))):void v()}function D(e){return N.map(e,(function(e){return{campaign_id:e.layerId,experiment_id:e.decision.experimentId,variation_id:e.decision.variationId,is_campaign_holdback:e.decision.isLayerHoldback}}))}function O(){var e=W.getPersistableState();if(e)try{F.debug("Persisting pending batch:",e),U.persistTrackerOptimizelyData(e),Y.dispatch(V.SET_TRACKER_DIRTY,!1)}catch(e){F.debug("Failed to persist pending batch:",e)}}var N=i(2),C=i(86),L=i(5),P="https://logx.optimizely.com/v1/events",V=i(7),k=i(76).create,x=i(26),F=i(23),M=i(115),U=i(74),G=i(40),B=i(91),z=i(16),j=i(80),H=i(87),K=i(111),Y=i(9),q=z.get("stores/global"),W=z.get("stores/tracker_optimizely"),X=t.Error=k("OptimizelyTrackerError"),Q="client_activation",$="campaign_activated",J="view_activated",Z=!1,ee=1e4,te=1e3,ie={revenue:{validate:u,sanitize:Math.floor,excludeFeature:!0},quantity:{validate:u,sanitize:Math.floor,excludeFeature:!0},value:{validate:u,sanitize:N.identity}},ne=!1,re=!1,ae="AUTO",oe=!0,se=function(e){e.timing===M.TrackLayerDecisionTimingFlags.postRedirectPolicy?p(e):_(e)},ce=[function(){return function(e){d(r(e),e.userFeatures,D(e.layerStates))}}],ue=[function(){return function(e){g(e),d(s(e),e.userFeatures,D(e.layerStates))}}],le=[function(){return function(e){d(o(e),e.userFeatures,D(e.layerStates))}}],de=[function(){return function(e){d(a(e),e.userFeatures,D(e.layerStates))}}],fe={trackLayerDecision:se,postRedirectPolicy:M.PostRedirectPolicies.TRACK_AFTER_SYNC,nonRedirectPolicy:M.NonRedirectPolicies.TRACK_IMMEDIATELY,onPageActivated:ce,onClientActivation:ue,onClickEvent:de,onCustomEvent:le};e.exports=function(e){e.registerAnalyticsTracker("optimizely",fe),H.on({filter:{type:K.TYPES.ANALYTICS,name:"sendEvents"},handler:function(){Y.dispatch(V.SET_TRACKER_SEND_EVENTS,!0),W.isPolling()||v()}}),H.on({filter:{type:K.TYPES.ANALYTICS,name:"holdEvents"},handler:function(){Y.dispatch(V.SET_TRACKER_SEND_EVENTS,!1)}}),Y.dispatch(V.SET_TRACKER_SEND_EVENTS,!re);var t=H.on({filter:{type:"lifecycle",name:"activated"},handler:function(){W.observe(O),H.off(t)}})}}),(function(e,t,i){e.exports=function(e){e.registerViewProvider(i(210)),e.registerViewMatcher("url",i(211))}}),(function(e,t,i){var n=i(119);e.exports={provides:"url",getter:[function(){return n.getUrl()}]}}),(function(e,t,i){var n=i(198);e.exports={fieldsNeeded:["url"],match:function(e,t){return n(e.url,t)}}}),(function(e,t,i){function n(){r(),a(),h.addEventListener("popstate",E,!1),h.addEventListener("hashchange",m,!1),d.on({filter:{type:"viewTrigger",name:"URLChanged"},handler:function(){g.getViewsAndActivate(l.ViewActivationTypes.URLChanged)}})}function r(){function e(){var e=p.getOriginalPushState().apply(this,arguments);return _.resolve().then((function(){o("pushState")})),e}f.dispatch(c.ENSURE_ORIGINAL_PUSHSTATE),h.getGlobal("history").pushState=e}function a(){function e(){var e=p.getOriginalReplaceState().apply(this,arguments);return _.resolve().then((function(){o("replaceState")})),e}f.dispatch(c.ENSURE_ORIGINAL_REPLACESTATE),h.getGlobal("history").replaceState=e}function o(e){d.emit({type:"viewTrigger",name:"URLChanged",data:{source:e,newURL:h.getHref()}},!0)}var s=i(2),c=i(7),u=i(16),l=i(25),d=i(87),f=i(9),p=u.get("stores/history"),g=i(123),h=i(40),_=i(12).Promise,v="URLChanged";e.exports=function(e){n(),e.registerViewTrigger(v)};var E=s.partial(o,"popstate"),m=s.partial(o,"hashchange")}),(function(e,t,i){e.exports=function(e){e.registerApiModule("recommender",i(214))}}),(function(e,t,i){function n(e){return e===A.SELF_CONTAINED_MULTI_COL}function r(e){return e===A.SEPARATE_CATALOG_SINGLE_COL}function a(e,t){if(!n(t))return b in e?I.parse(e[b]):(y.warn('recommender / Expected key "'+b+'" not found'),[]);var i=new RegExp("^"+w+"(\\d+)$"),r=m.reduce(e,(function(t,n,r){var a=r.match(i);if(a){var o=I.parse(e[r]);o&&m.isObject(o)&&(t[a[1]]=o)}return t}),[]);return m.filter(r,(function(e){return!m.isUndefined(e)}))}function o(e,t){return[e,encodeURIComponent(t)].join("/")}function s(e,t){var i=function(e,t,i){if(!m.isArray(e)||m.isEmpty(e))throw new Error("No "+i+"s available");var n;if(t){if(n=m.find(e,{id:t}),!n)throw new Error("No "+i+" found with specified id "+t)}else{if(e.length>1)throw new Error("No "+i+" id specified when there are more than one available.");n=e[0]}return n},n=e.getRecommenderServices(),r=i(n,t&&t.recommenderServiceId,"recommender service");r.idTagName||(r.idTagName="id");var a=i(r.recommenders,t&&t.recommenderId,"recommender");return{recommenderService:r,recommender:a}}function c(e){var t=I.parse(e);return t.data}function u(e,t){return T.request({url:o(e,t)}).then((function(e){var t=c(e.response),i={};return R in t&&(i=I.parse(t[R])),i}))}function l(e,t,i,n){var s=!(!n||!n.fetchWithMetadata),u=n&&n.overrideServingUrl||t.servingUrl;return T.request({url:o(u,i)}).then((function(t){var i=[],o=c(t.response);return i=a(o,e.serviceVersion),s&&r(e.serviceVersion)?d(e,m.map(i,e.idTagName),n).then((function(e){return e=m.map(e,(function(e){return e instanceof Error&&(e={}),delete e["__proto__"],e})),m.merge(i,e)})):i}))}function d(e,t,i){var n=i&&i.overrideCatalogUrl||e.catalogUrl;return m.isString(t)?u(n,t):S.all(m.map(t,(function(e){return u(n,e)["catch"]((function(t){return y.warn("recommender / Failed to get recommendations for item:",e,t),t}))})))}function f(e,t,i){var n=s(e,i),r=n.recommenderService,a=n.recommender;return l(r,a,t,{overrideServingUrl:i&&i.overrideServingUrl,overrideCatalogUrl:i&&i.overrideCatalogUrl,fetchWithMetadata:!0})}function p(e,t,i){var n=s(e,i),a=n.recommenderService,o=n.recommender;if(!r(a.serviceVersion))throw new Error("Recommender service "+a.id+" serves self-contained recos. Use `fetchRecommendations` API call");return l(a,o,t,{overrideServingUrl:i&&i.overrideServingUrl,fetchWithMetadata:!1})}function g(e,t,i){var n=s(e,i),a=n.recommenderService;if(!r(a.serviceVersion))throw new Error("Recommender service "+a.id+" serves self-contained recos. Use `fetchRecommendations` API call");return m.isArray(t)&&t.length>D?S.reject("Cannot fetch more than "+D+" items"):d(a,t,i)}function h(e,t,i,n){return new _(e,t,i,n)}function _(e,t,i,n){this.recommenderSettings=t;var r=s(e,t);this.recommenderService=r.recommenderService,this.recommender=r.recommender,this.targetId=i,n&&(this.preFilter=n.preFilter,this.canonicalize=n.canonicalize,this.postFilter=n.postFilter),this._globalStore=e,this.reset()}function v(){var e={recosNoMeta:[],recosNoMetaOffset:0,recos:[],recosOffset:0};return y.debug("recommender / fetching recommended items for",this.targetId,"from recommender",this.recommender.id),r(this.recommenderService.serviceVersion)?p(this._globalStore,this.targetId,this.recommenderSettings).then(m.bind((function(t){return e.recosNoMeta=m.filter(t,this.preFilter),e}),this)):f(this._globalStore,this.targetId,this.recommenderSettings).then(m.bind((function(t){return e.recos=m(t).filter(this.preFilter).map(this.canonicalize).filter(this.postFilter).value(),e}),this))}function E(e){var t=e.numNeeded,i=e.buffer,n=i.recosNoMeta.length-i.recosNoMetaOffset;if(t<=0||n<=0)return S.resolve(e);var r=5,a=Math.max(t,r),o=m.slice(i.recosNoMeta,i.recosNoMetaOffset,i.recosNoMetaOffset+a),s=m.map(o,this.recommenderService.idTagName);i.recosNoMetaOffset+=s.length;var c=e.recosSoFar;return y.debug("recommender / fetching metadata for",s,"from recommender",this.recommender.id),g(this._globalStore,s,this.recommenderSettings).then(m.bind((function(n){n=m.map(n,(function(e){return e instanceof Error?{}:e})),i.recos=m(o).merge(n).map(this.canonicalize).filter(this.postFilter).value();var r=m.slice(i.recos,0,t);return i.recosOffset=r.length,e.recosSoFar=c.concat(r),e.numNeeded-=r.length,e.numNeeded>0?E.call(this,e):e}),this))}var m=i(2),I=i(26),y=i(23),S=i(12).Promise,T=i(91),A={SELF_CONTAINED_MULTI_COL:1,SEPARATE_CATALOG_SINGLE_COL:2},R="itemMetadata",b="recos",w="reco",D=20;_.prototype.reset=function(){this._bufferPromise=null},_.prototype.next=function(e){var t=Math.floor(m.isNumber(e)?e:1);if(t<=0)throw new Error("Invalid argument "+e+". Must be positive integer");this._bufferPromise||(this._bufferPromise=v.call(this));var i=this._bufferPromise.then(m.bind((function(e){var i=[],n=e.recos.length-e.recosOffset;return n>0&&(i=e.recos.slice(e.recosOffset,e.recosOffset+t),e.recosOffset+=i.length,t-=i.length),t<=0?{result:i,buffer:e}:E.call(this,{buffer:e,recosSoFar:i,numNeeded:t}).then((function(e){return{result:e.recosSoFar,buffer:e.buffer}}))}),this));return this._bufferPromise=i.then((function(e){return e.buffer})),i.then((function(e){return e.result}))},e.exports=["stores/global",function(e){return{fetchRecommendations:m.partial(f,e),fetchRecommendedItems:m.partial(p,e),fetchItemMetadata:m.partial(g,e),getRecommendationsFetcher:m.partial(h,e)}}]}),(function(e,t,i){function n(e,t){if(this.change=e,this.identifier=t.identifier,this.startTime=t.startTime,d.shouldObserveChangesIndefinitely()){g.dispatch(a.INITIALIZE_CHANGE_METRICS),this.rateMeter=new _(m.MOVING_WINDOW_MILLISECONDS);var i=r.isNull(m.MAX_MACROTASKS_IN_MOVING_WINDOW)?Number.POSITIVE_INFINITY:m.MAX_MACROTASKS_IN_MOVING_WINDOW;this.rateMeter.addListener(i,r.bind((function(){h.warn("AppendChange",this,"has overheated and will no longer apply or reapply"),this.cancel(),g.dispatch(a.RECORD_CHANGE_OVERHEATED),o.emitError(new I("Change "+this.identifier+" has overheated"),{layerId:t.action&&t.action.layerId,experimentId:t.action&&t.action.experimentId,variationId:t.action&&t.action.variationId,changeId:e.id,changeType:e.type,movingWindowMilliseconds:m.MOVING_WINDOW_MILLISECONDS,maxMacroTasksInMovingWindow:i})}),this));for(var n=Math.min(i,50),s=0;s<=n;s++)this.rateMeter.addListener(s,r.partial((function(e){g.dispatch(a.RECORD_CHANGE_MACROTASK_RATE,{changeMacrotaskRate:e})}),s))}}var r=i(2),a=i(7),o=i(86),s=i(137),c=i(76).create,u=i(216),l=i(217),d=i(16).get("stores/directive"),f=i(80),p=i(218),g=i(9),h=i(23),_=i(219),v=i(136),E=i(100).create(),m={MOVING_WINDOW_MILLISECONDS:1e3,MAX_MACROTASKS_IN_MOVING_WINDOW:10},I=c("ChangeOverheatError");n.prototype.numberOfRootNodes=function(e){var t=document.createElement("div");return t.innerHTML=e,t.childNodes.length},n.prototype.getSiblingElements=function(e,t,i){for(var n=e,r=[],a=0;a
Please update your billing information
The subscription details associated with this account need to be updated. Please
update your billing details here to continue enjoying your subscription.
Your subscription will end shortly
Please
update your billing details here to continue enjoying your access to the most informative and considered journalism in the UK.
In the monsoon season of August 2012 a small team of scientists travelled to southwest China to investigate a new and mysteriously lethal illness. After driving through terraced tea plantations, they reached their destination: an abandoned copper mine where — in white hazmat suits and respirator masks — they ventured into the darkness.
Instantly, they were struck by the stench. Overhead, bats roosted. Underfoot, rats and shrews scurried through thick layers of their droppings. It was a breeding ground for mutated micro-organisms and pathogens deadly to human beings. There was a reason to take extra care. Weeks earlier, six men who had entered the mine had been struck down by an illness that caused an uncontrollable pneumonia. Three of them died.
Today, as deaths from